把数组拍成最小的数
1、题目要求
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
2、我的代码
class Solution {
public:
string PrintMinNumber(vector<int> numbers) {
if(numbers.empty()) return string();
sort(numbers.begin(), numbers.end(), [](int a, int b){
string sa = to_string(a);
string sb = to_string(b);
return sa+sb < sb+sa;
});
string res;
for_each(numbers.begin(), numbers.end(), [&](int m){
res += to_string(m);
});
return res;
}
};
本文介绍了一种算法,该算法接收一个正整数数组,通过特定的排序方式将数组中的数字重新排列并拼接成一个尽可能小的数值。文章提供了一个C++实现示例,演示了如何使用lambda表达式进行自定义排序,并最终输出拼接后的最小数值。
5万+

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



