剑指 Offer 45. 把数组排成最小的数
输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
思路
贪心算法
代码
class Solution {
public:
static bool cmp(const string& a, const string& b) {
return a + b < b + a;
}
string minNumber(vector<int>& nums) {
vector<string> num_str;
for (const auto& num : nums) {
num_str.push_back(to_string(num));
}
sort(num_str.begin(), num_str.end(), cmp);
string ans;
for (const auto& num : num_str) {
ans += num;
}
return ans;
}
};