Largest Number

 1 class Solution {
 2 public:
 3     string largestNumber(vector<int>& nums) {
 4            string s;
 5            if(nums.empty())
 6                  return s;
 7            bool flag =false;
 8            for(int i=0; i<nums.size(); ++i)
 9            {
10                flag = false;
11                for(int j=1; j<nums.size()-i; ++j)
12                 {
13                     if(catcmp(nums[j-1], nums[j]))
14                     {
15                         flag = true;
16                         swap(nums[j-1], nums[j]);
17                     }
18                 }
19                 if(flag == false)
20                       break;
21            }  
22            if(nums[nums.size()-1] == 0)
23                  return "0";
24            for(int i=nums.size()-1; i>=0; --i)
25                 s += itos(nums[i]);
26            return s;
27     }
28     string itos(int n)
29     {
30          string s;
31          if(n==0)
32               return "0";
33          while(n != 0)
34          {
35              s += n%10 +'0';
36              n = n/10;
37          }
38          int i=0, j=s.size()-1;
39          while(i<j)
40          {
41              swap(s[i], s[j]);
42              i++;
43              --j;
44          }
45          return s;
46     }
47     bool catcmp(int n1, int n2)
48     {
49          if(((itos(n1)+itos(n2))> (itos(n2)+itos(n1))))
50               return true;
51          else return false;
52     }
53 };
原文地址:https://www.cnblogs.com/daocaorenblog/p/5522831.html