这个题目最开始我想到的是比较每个数的最高位
但是最后这种情况不切实际
比如说 3 35 这种最高位相同的就很难处理 这个题目本质上是一个贪心算法的问题
public:
string largestNumber(vector<int>& nums) {
vector<string> str;
for (auto e : nums)
str.push_back(to_string(e));
sort(str.begin(), str.end(), [](const string& s1, const string& s2) {
return s1 + s2 > s2 + s1;
});
string ret;
for (auto s : str)
ret += s;
if (ret[0] == '0')
return "0";
return ret;
}
};