LeetCode 179. Largest Number(排序)
- 2020 年 2 月 14 日
- 筆記
題意:給你一個數組,讓你把數組裡的元素組合起來,組合成的新數字最大
題解:把數字給排個序,但是排序的標準是啥呢?兩個數字孰大孰小呢?判斷標準就是兩個數字分別前後組合,得出的數字哪個大,則前面的那個數字就大。 一開始我的思路錯了,根據數字每個位上的數字判斷,這樣反而是變得更加複雜了!
class Solution { public: string largestNumber(vector<int>& nums) { vector<string> strs; for(int i=0;i<nums.size();i++) { strs.push_back(to_string(nums[i])); } sort(strs.begin(),strs.end(),compare); string ans=""; for(int i=0;i<strs.size();i++) { ans+=strs[i]; } if(ans[0]=='0') ans="0"; return ans; } static int compare(string a,string b) { string x=a+b; string y=b+a; return x>y; } };