179. Largest Number

来源:互联网 发布:股价历史数据库 编辑:程序博客网 时间:2024/06/07 15:17

这道题是说,给出一些数字,要求用这些数字拼成一个非常大的整数,用字符串表示。

这道题没想到怎么做,看了别人的方法。

例如给出的例子里的9,9既不是最大的也不是最小的,但是9应该放在最前面。这很像字符串的比较,如果9和30当做字符串来比较,那么9就会排到30的前面。

所以首先将数组排序,排序的规则要我们自己定——当做字符串来比较。

排序号之后连起来就ok了。

class Solution {public:    static bool compare(int a, int b){        return to_string(a) + to_string(b) > to_string(b) + to_string(a);    }    string largestNumber(vector<int>& nums) {        string res;        sort(nums.begin(), nums.end(), compare);        for(int i = 0; i < nums.size(); ++i){            res += to_string(nums[i]);        }        return res[0] == '0' ? "0" : res;    }};


原创粉丝点击