题解 | #最大数#
最大数
http://www.nowcoder.com/practice/fc897457408f4bbe9d3f87588f497729
- 必须转换成字符串,然后进行比较。a+ b> b+a . 利用字符串得位置互换得出结论。
- 注意处理”000“ 的输出。
class Solution { public: /** * 最大数 * @param nums int整型vector * @return string字符串 */ string solve(vector<int>& nums) { // write code here if(!nums.size()) return ""; int flag = 0; for(auto x: nums){ if(x != 0){ flag = 1; } } if(flag == 0){ return "0"; } vector<string> str; for(auto st:nums) str.push_back(to_string(st)); sort(str.begin(),str.end(),[](string a, string b){ return a+b > b + a;//字符串组合,然后通过字符串得自身数字比较特性给出结果 }); string res=""; for(int i =0; i< str.size();i++){ res+= str[i]; } return res; } };
算法解析 文章被收录于专栏
这里主要是算法岗的自我思路总结