题目描述

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{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之把数组排成最小的数相关推荐

  1. 【LeetCode】剑指 Offer 45. 把数组排成最小的数

    [LeetCode]剑指 Offer 45. 把数组排成最小的数 文章目录 [LeetCode]剑指 Offer 45. 把数组排成最小的数 package offer;import java.uti ...

  2. 《剑指offer》-- 把数组排成最小的数、丑数、二进制中1的个数、表示数值的字符串、替换空格

    一.把数组排成最小的数: 1.题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为 ...

  3. 剑指OFFER之把数组排成最小的数(九度OJ1504)

    2019独角兽企业重金招聘Python工程师标准>>> 题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32 ...

  4. 剑指offer:把数组排成最小的数

    题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 解题思路 依 ...

  5. 【自定义排序规则】剑指 Offer 45. 把数组排成最小的数

    我是小张同学,立志用更简洁的代码做更高效的表达 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个. 示例 1: 输入: [10,2] 输出: "1 ...

  6. 《剑指offer》把数组排成最小的数

    题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 解析方式一:非常 ...

  7. 【算法】剑指 Offer 45. 把数组排成最小的数 【重刷】

    1.概述 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个. 示例 1: 输入: [10,2] 输出: "102" 示例 2: 输入: ...

  8. 【LeetCode笔记】剑指 Offer 45. 把数组排成最小的数(Java、字符串、Lambda)

    文章目录 题目描述 思路 && 代码 二刷 题目描述 很 nice 的一道题!花的时间也不会很多,还能复习复习 Lambda- 思路 && 代码 核心思路:如果 x + ...

  9. 力扣—剑指 Offer 45. 把数组排成最小的数

    题目 解决方法 参看官方解决思路,就是将数列中的元素两两拼接.如'2'+'3'='23'<'3'+'2'='32'则2在3的左边.由于该题不用考虑组合后第一位是零的情况,所以这样将所有的元素比较 ...

最新文章

  1. android二级列表展开,ExpandableListView控件实现二级列表
  2. C++中的sizeof与strlen对比
  3. Spring Boot 集成 WebSocket通信信息推送!
  4. JVM学习笔记-03-类加载器及双亲委派机制
  5. fprom预测结果内容_预测模型之机器学习 Machine Learning结果解读篇
  6. html5+中奖结果页面,html5+css3实现抽奖活动的效果
  7. java打印unicode_java程序实现Unicode码和中文互相转换
  8. MVC一个action对应多个视图的写法
  9. jms.jar 2.0_JMS API概述:JMS 1.x和JMS 2.x
  10. vscode字体等宽策略( JetBrains Mono NL + 思源黑体 HW )
  11. Adapter(适配器)模式
  12. 一、应广单片机的Mini-C语言基础
  13. pytorch实现resnet50
  14. 一台服务器​最大并发 tcp 连接数多少?65535?
  15. 2020年新年新气象
  16. 【Python】日志关键字分析工具
  17. openwrt之修改Luci界面
  18. G - Tiling
  19. 乐高太多没处放?解放女朋友双手,1 个顶 100 个的乐高智能分拣机来了!
  20. python3.9.0 安装教程

热门文章

  1. 计算机二级地15套题答案,计算机二级第15套答案解析.docx
  2. 自研分布式web漏洞扫描平台WDScanner
  3. 二分图判定(涂色问题)
  4. 最新 MySQL数据库安装详解(简洁快速)
  5. 可见光迁移——学习笔记
  6. [转]抛弃jQuery,使用原生JavaScript
  7. 树莓派入门教程 - 0 - 准备篇 - 0.0 SD卡制作树莓派系统镜像启动盘 开机
  8. NavigatorContent使用皮肤
  9. 浅谈 标准的代号和编号
  10. 第一百九十八节,jQuery EasyUI,ProgressBar(进度条)组件