剑指 Offer 45. 把数组排成最小的数

剑指 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;

    }
};
posted @ 2022-04-28 15:43  沐灵_hh  阅读(9)  评论(0编辑  收藏  举报