
解法一
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;
}
};
这篇博客探讨了两种不同的解决方案,用于将整数数组转换为最小数字字符串。解法一利用了自定义排序函数,解法二则直接在sort中内联定义比较逻辑。这两种方法都确保了数字组合后的最小化。
938

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



