【题目描述】
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。
【示例】
输入: [10,2]
输出: 210
输入: [3,30,34,5,9]
输出: 9534330
【解题思路】
自定义一种排序比较方法,就是判断ab>ba
注意如果数组全是0,输出为“0”
【代码】
class Solution {
public:
static bool comp(const string a, const string b)
{
string sum1 = a + b;
string sum2 = b + a;
return sum1 > sum2;
}
string largestNumber(vector<int>& nums) {
string res = "";
if(nums.empty()) return res;
vector<string>strs;
for(int i = 0; i < nums.size(); i++)
strs.push_back(to_string(nums[i]));
sort(strs.begin(), strs.end(), comp);
for(int i = 0; i < strs.size(); i++)
{
res += strs[i];
}
if(res[0] == '0') return "0";
return res;
}
};