0%

179. 最大数

[179. 最大数](https://leetcode-cn.com/problems/largest-number/)

类似剑指 Offer 45. 把数组排成最小的数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Solution {
public:
string largestNumber(vector<int>& nums) {
// 自定义排序,对于两个数a,b,他们组合起来时如果ab>ba,那么a就要放在b前面
sort(nums.begin(), nums.end(), [](int a, int b)
{
long sa = 10;
long sb = 10;
while(sa <= a)
{
sa *= 10;
}
while(sb <= b)
{
sb *= 10;
}
return sa * b + a < sb * a + b;
});
// 针对数组中全是0的情况,例如[0,0],如果不做这个处理会返回"00"
if(nums[0] == 0)
return "0";
string ret;
for(auto& num : nums)
ret += to_string(num);
return ret;
}
};