其他分享
首页 > 其他分享> > JZ32-把数组排成最小的数

JZ32-把数组排成最小的数

作者:互联网

【题目描述】

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。

【解法】


class Solution {
public:
    string PrintMinNumber(vector<int> nums) {
        vector<string> str;
        for (int val : nums) str.push_back(to_string(val));

     //此步是解题的关键
     //将str中的元素进行排序,排序规则是a + b < b + a
        sort(str.begin(), str.end(), [](string a, string b) {
            return a + b < b + a;
        });

        string ret = "";
        for (string s : str) ret += s;
        return ret;
    }
};

知识点:
sort函数没有第三个参数,实现的是从小到大(升序)排列
在这里插入图片描述

标签:排成,string,JZ32,数组,ret,str,数字
来源: https://blog.csdn.net/zhangmumu_/article/details/110236268