【剑指offer系列】 把数组排成最小的数___33
来源:互联网 发布:mac地址过滤是什么意思 编辑:程序博客网 时间:2024/05/16 10:22
题目描述:
输入一个正整数数组,把数组中所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
示例:
输入:{3 ,32 ,321}
输出:321323
分析:
首先把数组中的每个数字转换成字符串的形式,然后对所有字符串进行排序
排序的规则是:a+b < b+a,则a应该在b的前面,
最后再将所有的字符串拼接起来即为最终的结果
为了防止数据溢出,使用字符串的形式来保存最终结果。
并且字符串起始的0都要去掉,如01234,应该只返回1234即可
代码:
static bool cmp(string& s1,string& s2){ return s1+s2<s2+s1; } string largestNumber(vector<int>& nums) { vector<string> strs; for(int i=0;i<nums.size();++i){ strs.push_back(to_string(nums[i])); //step 1:转换成字符串 } sort(strs.begin(),strs.end(),cmp); //step 2:按照规则排序 string res; bool flag=true; for(int i=0;i<strs.size();++i){ //step 3:将所有字符串按序拼接 if(strs[i]=='0'&&flag) continue; //去掉起始的0 res+=strs[i]; flag=false; } return res; }
0 0
- 【剑指offer系列】 把数组排成最小的数___33
- 剑指offer系列源码-把数组排成最小的数
- 剑指offer-33:把数组排成最小的数
- 剑指offer:把数组排成最小的数
- 【剑指offer】把数组排成最小的数
- 【剑指offer】Q33:把数组排成最小的数
- 九度《剑指offer》把数组排成最小的数
- 剑指Offer之把数组排成最小的数
- 剑指offer 33 把数组排成最小的数
- 剑指offer--把数组排成最小的数
- 剑指offer之把数组排成最小的数
- 《剑指offer》把数组排成最小的数
- 剑指offer:把数组排成最小的数
- 【剑指Offer】把数组排成最小的数
- 剑指offer—把数组排成最小的数
- 《剑指offer》——把数组排成最小的数
- 【剑指offer】之把数组排成最小的数
- 剑指offer:把数组排成最小的数
- 20160410】嗯……省选两日游完了抒发一下感想 (讲道理这里可以抒情?【SCOI2016
- Educational Codeforces Round 11--A. Co-prime Array
- archlinux xfce4 l2tp服务启动失败
- CQOI2016 总结
- Oracle11g 新特性 虚拟列
- 【剑指offer系列】 把数组排成最小的数___33
- bug记录1
- Android 更新UI的两种方法——handler和runOnUiThread()
- Jmeter 结合 Servers Performance Monitoring 插件进行性能监控
- leetcode 189. Rotate Array
- 在终端输入多行信息并且查找需要的信息且打印出含有该信息的行(不使用库函数)
- python+caffe做图片处理可能会用到的方法
- Out.flush用法
- TCP协议三次握手连接四次握手断开和DOS攻击