179. Largest Number179. Largest Number

思路:

这道题就需要对比没对数,ab和ba谁更大。那么我们就把nums的元素都放入vector里面,这样string类型利于a+b和b+a的合并。
然后通过调用sort函数根据函数a+b>b+a的lambda函数排序。
然后判断排序后的数组第一个元素是否为0,为0就return 0,否则就加入一个string 字符串里。返回0是因为有“0,0”的可能,但是这样得到的数只是0,不是00,所以要去掉这种可能
代码:

class Solution {
public:
    string largestNumber(vector<int>& nums) {
        vector<string> ans;
        for(auto&num:nums){
            ans.push_back(to_string(num));
        }
        sort(ans.begin(),ans.end(),[](const string& a,const string& b){
            return a+b>b+a;
        });
        string res="";
        for(auto&a:ans){
            res += a;
        }
        return (res[0]=='0')? "0":res; 
    }
};
posted @ 2021-04-12 13:57  Mrsdwang  阅读(33)  评论(0编辑  收藏  举报