美文网首页
把数组排成最小的数

把数组排成最小的数

作者: UAV | 来源:发表于2020-06-16 15:03 被阅读0次

    题目描述

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

    class Solution {
    public:
        string PrintMinNumber(vector<int> numbers) {
            for (int i = 0; i < numbers.size(); i++)
            {
                for (int j = i + 1; j < numbers.size(); j++)
                {
                    string s1_data =to_string(numbers[i]) + to_string(numbers[j]);
                    string s2_data = to_string(numbers[j]) + to_string(numbers[i]);
                    const char *s1 = s1_data.c_str();
                    const char *s2 = s2_data.c_str();
                    if (strcmp(s1, s2)>0) {
                        int temp;
                        temp = numbers[i];
                        numbers[i] = numbers[j];
                        numbers[j] = temp;
                    }
                }
            }
            string result = "";
            for (int i = 0; i <numbers.size(); i++)
            {
                result += to_string(numbers[i]);
            }
    
            return result;
        }
    };
    

    相关文章

      网友评论

          本文标题:把数组排成最小的数

          本文链接:https://www.haomeiwen.com/subject/dpqrxktx.html