LeetCode 179. 最大數(Largest Number)

題目描述

 

給定一組非負整數,從新排列它們的順序使之組成一個最大的整數。數組

示例 1:spa

輸入: 
輸出: [10,2]210

示例 2:code

輸入: 
輸出: [3,30,34,5,9]9534330

說明: 輸出結果可能很是大,因此你須要返回一個字符串而不是整數。blog

 

解題思路

 

組成最大數應使得高位數字儘可能大,因此首先按照高位數字從大到小對數組排序,而後一次從高位到低位組成最大數。注意若數組全爲0,則直接返回一個0.排序

 

代碼

 

 1 class Solution {  2 public:  3     string largestNumber(vector<int>& nums) {  4         vector<string> numStr;  5         for(int num: nums)  6  numStr.push_back(to_string(num));  7  sort(numStr.begin(), numStr.end(), cmp);  8         if(numStr.size() && numStr[0] == "0") return "0";  9         string s = ""; 10         for(string num: numStr) 11             s += num; 12         return s; 13  } 14     static bool cmp(string i, string j){ 15         return i + j > j + i; 16  } 17 };
相關文章
相關標籤/搜索