LeetCode 179. 最大数 另类题解
原题链接
中等
作者:
Sundae
,
2021-04-12 10:24:56
,
所有人可见
,
阅读 310
class Solution {
public:
string largestNumber(vector<int>& nums) {
// sort(nums.begin(), nums.end(), [](const int &x, const int &y) {
// long sx = 10, sy = 10;
// while (sx <= x) {
// sx *= 10;
// }
// while (sy <= y) {
// sy *= 10;
// }
// return sy * x + y > sx * y + x;
// });
sort(nums.begin(), nums.end(), [](const int &x, const int &y){
int len_x = -1, len_y = -1;
if(x == 0){
len_x = 1;
}
else{
len_x = int(log10(x)) + 1;
}
if(y == 0){
len_y = 1;
}
else{
len_y = int(log10(y)) + 1;
}
return x * pow(10,len_y) + y > y * pow(10, len_x) + x;
});
if (nums[0] == 0) {
return "0";
}
string res;
for (int &x : nums) {
res += to_string(x);
}
return res;
}
};