摘要: 例如8314925去掉4个数,留下125最小,注意有前后顺序要求,要是没有顺序当然是123。解决方案贪心算法,在每次被访问的位置保证有最优解。思路一分析:求一共n位,求其中的m位组成的数最小。那么这个m位的数,最高位应该在原数的最高位到第m位区间找,要不然就不能当第m位了,如下图(得到3位数最小,要是百位数在25中找,就当不了百位数了): 同样找十位数时只能在百味数到目前位置中间搜,整个过程图示如下: 注意在区间有多个最小值,取距离最大的,保证下一位数有足够大的查找空间。参考代码#include #include #include using namespace std;int *q;... 阅读全文
posted @ 2014-03-05 18:07 jihite 阅读(5090) 评论(10) 推荐(4)