将nums数组中的整数转换为string,然后将这些string保存到vector中,定义lambda表达式对string元素进行排序(注意4, 410这种情况),方法是对两个元素进行拼接,然后比较拼接之后的大小。最后对已经排序的string数组连接起来就可以了。

class Solution {
public:
    /**
     * 最大数
     * @param nums int整型vector 
     * @return string字符串
     */
    string solve(vector<int>& nums) {
        vector<string> vec{};
        for(auto x: nums) vec.push_back(to_string(x));
        auto cmp=[](string str1,string str2){
            int temp1=stoi(str1+str2);
            int temp2=stoi(str2+str1);
            if(temp1>temp2) return true;
            else return false;
        };
        sort(vec.begin(),vec.end(),cmp);
        string result{};
        for(auto s: vec) result+=s;
        if (result[ 0 ] == '0') result = "0";
        return result;
    }
};