剑指Offer之把数组排成最小的数
题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
解题思路
把vector中的数字先转换成字符串,存到vec中。然后,需要按照某种字典序对vec中的字符串进行排序。思路很简单,假设有两个字符串s1、s2,如果s1+s2的字典序小于等于s2+s1的字典序,那么s1应该在s2前面;这些在C++借助于sort函数和lambda表达式即可实现。
AC代码
class Solution {public:string PrintMinNumber(vector<int> numbers) {string res;if(numbers.empty()) {return res;}vector<string>vec;// 先转换成字符for(const auto& num : numbers) {string str=to_string(num);vec.emplace_back(str);}// 按照自定义的字典序排列sort(vec.begin(), vec.end(), [](const string & s1, const string & s2)->bool {return (s1 + s2) <= (s2 + s1);});// 追加数据for(const auto& s : vec) {res += s;}return res;}
};
剑指Offer之把数组排成最小的数相关推荐
- 【LeetCode】剑指 Offer 45. 把数组排成最小的数
[LeetCode]剑指 Offer 45. 把数组排成最小的数 文章目录 [LeetCode]剑指 Offer 45. 把数组排成最小的数 package offer;import java.uti ...
- 《剑指offer》-- 把数组排成最小的数、丑数、二进制中1的个数、表示数值的字符串、替换空格
一.把数组排成最小的数: 1.题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为 ...
- 剑指OFFER之把数组排成最小的数(九度OJ1504)
2019独角兽企业重金招聘Python工程师标准>>> 题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32 ...
- 剑指offer:把数组排成最小的数
题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 解题思路 依 ...
- 【自定义排序规则】剑指 Offer 45. 把数组排成最小的数
我是小张同学,立志用更简洁的代码做更高效的表达 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个. 示例 1: 输入: [10,2] 输出: "1 ...
- 《剑指offer》把数组排成最小的数
题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 解析方式一:非常 ...
- 【算法】剑指 Offer 45. 把数组排成最小的数 【重刷】
1.概述 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个. 示例 1: 输入: [10,2] 输出: "102" 示例 2: 输入: ...
- 【LeetCode笔记】剑指 Offer 45. 把数组排成最小的数(Java、字符串、Lambda)
文章目录 题目描述 思路 && 代码 二刷 题目描述 很 nice 的一道题!花的时间也不会很多,还能复习复习 Lambda- 思路 && 代码 核心思路:如果 x + ...
- 力扣—剑指 Offer 45. 把数组排成最小的数
题目 解决方法 参看官方解决思路,就是将数列中的元素两两拼接.如'2'+'3'='23'<'3'+'2'='32'则2在3的左边.由于该题不用考虑组合后第一位是零的情况,所以这样将所有的元素比较 ...
最新文章
- android二级列表展开,ExpandableListView控件实现二级列表
- C++中的sizeof与strlen对比
- Spring Boot 集成 WebSocket通信信息推送!
- JVM学习笔记-03-类加载器及双亲委派机制
- fprom预测结果内容_预测模型之机器学习 Machine Learning结果解读篇
- html5+中奖结果页面,html5+css3实现抽奖活动的效果
- java打印unicode_java程序实现Unicode码和中文互相转换
- MVC一个action对应多个视图的写法
- jms.jar 2.0_JMS API概述:JMS 1.x和JMS 2.x
- vscode字体等宽策略( JetBrains Mono NL + 思源黑体 HW )
- Adapter(适配器)模式
- 一、应广单片机的Mini-C语言基础
- pytorch实现resnet50
- 一台服务器​最大并发 tcp 连接数多少?65535?
- 2020年新年新气象
- 【Python】日志关键字分析工具
- openwrt之修改Luci界面
- G - Tiling
- 乐高太多没处放?解放女朋友双手,1 个顶 100 个的乐高智能分拣机来了!
- python3.9.0 安装教程