https://leetcode-cn.com/problems/largest-number/
思路:严格证明不太会……先把每个数字转换成字符串,那么对于字符串
a
、
b
a、b
a、b,如果
a
+
b
>
b
+
a
a+b>b+a
a+b>b+a就让
a
a
a在
b
b
b前面,按照这个方式排序即可。
class Solution {
public:
string largestNumber(vector<int>& nums) {
vector<string> strs(nums.size());
for(int i=0;i<nums.size();i++)
strs[i]=to_string(nums[i]);
auto cmp=[](const string& s1,const string& s2){
return s1+s2>s2+s2;
};
sort(strs.begin(),strs.end(),cmp);
if(strs[0]=="0")
return "0";
return accumulate(strs.begin(),strs.end(),string());
}
};