LeetCode() Largest Number
生活随笔
收集整理的這篇文章主要介紹了
LeetCode() Largest Number
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
全排列,超時,知道超時,只是想驗證一下。
class Solution { public:string largestNumber(vector<int>& nums) {sort(nums.begin(),nums.end());string res="";res=f(nums);while(next_permutation(nums.begin(),nums.end())){if(res<f(nums))res=f(nums);}return res;}string f(vector<int>& coll){string res;for(int i=0;i<coll.size();++i){ostringstream sss;sss<<coll[i];res+=sss.str();}return res;} };en ,這個也不對
class Solution { public:string largestNumber(vector<int>& nums) {vector<string> coll;for(int i=0;i<nums.size();++i){ostringstream sss;sss<<nums[i];coll.push_back(sss.str());}sort(coll.begin(),coll.end());string res="";for(int i=coll.size()-1;i>=0;--i)res+=coll[i];return res;}};事實證明,過了點不吃飯真的很危險,又低血糖了。
class Solution { public:string largestNumber(vector<int>& nums) {vector<string> coll;for(int i=0;i<nums.size();++i){ostringstream sss;sss<<nums[i];coll.push_back(sss.str());}string res="";auto ite=coll.begin();sort(ite,ite+coll.size(),c);for(int i=coll.size()-1;i>=0;--i)res+=coll[i];if(res[0] == '0')return "0";return res;}static bool c(const string a,const string b){string ab=a+b;string ba=b+a;return ab<ba;} };更精簡的
class Solution { public: string largestNumber(vector<int>& nums) { sort(nums.begin(), nums.end(), [](const int& lhs, const int & rhs){return to_string(lhs) + to_string(rhs) > to_string(rhs) + to_string(lhs);}); if (nums[0] == 0) return "0"; return accumulate(nums.begin(), nums.end(), string(""), [](const string& a, int b){ return a + to_string(b);}); } };
轉載于:https://www.cnblogs.com/yanqi110/p/5016917.html
總結
以上是生活随笔為你收集整理的LeetCode() Largest Number的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 忍一时得寸进尺, 退一步变本加厉。
- 下一篇: mvc 的登录验证