思路:
自定义排序。注意测试数据全为0的情况。
class Solution {
private:
static bool cmp(const string &s1, const string &s2) {
return (s1 + s2) > (s2 + s1);
}
public:
string largestNumber(vector<int>& nums) {
vector<string> vs(nums.size());
for(int i = 0; i < nums.size(); ++i) {
vs[i] = to_string(nums[i]);
}
sort(vs.begin(), vs.end(), cmp);
string ans;
bool flag = false;
for(int i = 0; i < vs.size(); ++i) {
if(vs[i] != "0") {
ans += vs[i];
flag = true;
}else if(flag){
ans += vs[i];
}
}
if(!flag) ans = "0";
return ans;
}
};
本文介绍了一种通过自定义排序算法来解决特定问题的方法:即如何将一系列整数重新排列形成最大的可能数值。文章详细阐述了算法的实现思路,并提供了一个具体的C++代码示例,特别注意了全0数据的特殊情况。

被折叠的 条评论
为什么被折叠?



