题目:
【算法:把数组排成最小的数】输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个 。示例:
输入: [3,30,34,5,9]输出: "3033459"
思路:
将原始int数组处理成字符串数组,对字符串数组排序,排序条件:
a+b < b+a最后把字符串数组合并成一个字符串返回 。
代码:
class Solution {public:string minNumber(vector<int>& nums) {vector<string> v;for(auto& val: nums){v.push_back(to_string(val));}sort(v.begin(), v.end(), [](string& a, string& b)->bool{return a+b < b+a;});ostringstream oss;for(auto& s: v){oss<<s;}return oss.str();}};
推荐阅读
- 事业励志的名言名句?立志做大事的名言_1
- 那些惊艳的算法—时间轮算法
- 火把节是什么民族?在几月几日? 火把节哪个民族的节日?是什么时候?
- 合格的算法工程师哪些能力比较重要?
- 如何成功转行AI算法工程师
- OpenSSH 8.6发布,完全禁止SHA1算法
- 如何把青香蕉变成黄香蕉 香蕉发青怎么变黄
- 乾隆是真的把和珅留给嘉庆吗?嘉庆为什么不留着和珅_5
- 人们常说老师是蜡烛我却希望老师是?把老师比作蜡烛的诗
- 推特|马斯克440亿美元收购后履行承诺:Twitter算法上线GitHub、即将公开