0%

T179 关于对vector使用sort、字符串拼接使最大

题目内容

给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。

思路

从朴素的例子来看,4在3前,32在31前,那么34和340相比呢,34和345相比呢? 其实不必如此细致的考虑所有情况。4在3前是因为43>34,32在31前是因为3231>3132,同样的,通过34340>34034,34534>34345可得34在340前,345在34前。 一般的,若判断a是否应在b前,只需ab>ba即可(字符串意义上)。

实现

1
2
3
4
5
static bool comp(string a, string b){
return a.append(b) > b.append(a);
}
...
sort(strs.begin(),strs.end(),comp);
  • 自定义比较函数要static
  • 对vector进行的sort:sort(myvector.begin(), myvector.end(), comp);
看到这里的姐妹一看就要暴富暴美,为什么不让这一天提前一点呢ヾ(≧▽≦*)o