leetcode 179.最大数量 【数组组成最大数】

来源:互联网 发布:笛佛软件招聘 编辑:程序博客网 时间:2024/06/06 02:19

给定一个非负整数的列表,安排它们形成最大的数字。

例如,给定[3, 30, 34, 5, 9]的最大的数字是9534330

注意:结果可能非常大,因此您需要返回一个字符串而不是整数。

如152  和11

15211>11152,则152排在11前面,以此两两比较,确定每个数的位置

C++代码

struct{    bool operator()(string a,string b)    {        string c1=a+b;        string c2=b+a;        return c1>c2;    }}cmp;class Solution {public:    string largestNumber(vector<int>& nums) {        if(nums.size()==0)        return "";      vector<string> num_str;      for(int i=0;i<nums.size();i++)          num_str.push_back(to_string(nums[i]));      std::sort(num_str.begin(),num_str.end(),cmp);      string rest1="";      for(int i=0;i<num_str.size();i++)      rest1+=num_str[i];      if(rest1[0]=='0')      return "0";      else      return rest1;    }};




阅读全文
0 0
原创粉丝点击