解法一
class Solution {
public:
string minNumber(vector<int>& nums) {
if(nums.size()==1) return to_string(nums[0]);
vector<string> s;
string res="";
for (int i = 0; i < nums.size(); i++)
{
s.push_back(to_string(nums[i]));
}
sort(s.begin(),s.end(),comp);
for (int i = 0; i < nums.size(); i++)
{
res=res+s[i];
}
return res;
}
static bool comp(const string&s1, const string &s2){
return (s1+s2)<(s2+s1);
}
};
解法二
将函数内置
class Solution {
public:
string minNumber(vector<int>& nums) {
if(nums.size()==1) return to_string(nums[0]);
vector<string> s;
string res;
for (int i = 0; i < nums.size(); i++)
{
s.push_back(to_string(nums[i]));
}
sort(s.begin(),s.end(),[](string &s1, string &s2){return s1+s2 <s2+s1;});//sort函数,头尾,排序方法
for (int i = 0; i < nums.size(); i++)
{
res+=s[i];
}
return res;
}
};