剑指offer:把数列排成最小的数

来源:互联网 发布:php房产中介网站源码 编辑:程序博客网 时间:2024/06/05 03:14

题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
思路:
先把int转化成string,然后利用sort排序,生成新的字符串链表,然后输出

class Solution {public:    string PrintMinNumber(vector<int> numbers) {        vector<string> v1;        for(int i=0;i<numbers.size();i++){            v1.push_back(to_string(numbers[i]));        }        sort(v1.begin(),v1.end(),compare);        string res;        for(int i=0;i<numbers.size();i++){            res=res+v1[i];        }        return res;    }    static bool compare(string str1,string str2){        string temp1=str1+str2;        string temp2=str2+str1;        return temp1<temp2;    }};
原创粉丝点击