列表转化成数组_30. 把数组排成最小的数
把数组排成最小的数
题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
大致思路:
(1)我们可以先思考只有两个数字的情况: [3,32] ,可以看出来 332>323 因此需要把数组改变为 [32,3] ;
(2)对于有三个数字的情况: [3,32,321] 我们两两进行比较, 332>323 于是,将 3 与 32 交换位置变成 [32,3,321] 而 3321>3213 于是将 3 与 321 继续交换位置到 [32,321,3] ;接着我们继续使用 32 进行比较,由于 32321>32132 将 32与321 进行位置交换为 [321,32,3] 此时,将数组链接起来变成 321323 即为最小的数。
具体思路:
(1)先将数字列表转化成字符串链表,这样便于在一个字符串后面直接加上另外一个字符串。也就是 "3"+"321"="3321" 。
(2)构造一个比较函数,当 str1+str2>str2+str1 时我们认为字符串 str1>str2 。
(3)将字符串列表按照比较函数的规定进行冒泡排序(或其它方法排序),将定义为”大”的字符串放到最后。而”小”的字符串放在前面。最后将字符串列表链接起来,便是所求。
列表转化成数组_30. 把数组排成最小的数相关推荐
- 《剑指offer》-- 把数组排成最小的数、丑数、二进制中1的个数、表示数值的字符串、替换空格
一.把数组排成最小的数: 1.题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为 ...
- 数据结构与算法--将数组排成最小的数
将数组排成最小的数 题目:输入一个正整数的数组,将数组中所有数字拼接在一起排列成一个新的数,打印能拼接出来的所有数字中最小的一个, 案例:输入数组{12,4,55},则能打印出最小的数组是:12455 ...
- 【LeetCode笔记】剑指 Offer 45. 把数组排成最小的数(Java、字符串、Lambda)
文章目录 题目描述 思路 && 代码 二刷 题目描述 很 nice 的一道题!花的时间也不会很多,还能复习复习 Lambda- 思路 && 代码 核心思路:如果 x + ...
- printf打印数组_(45)C++面试之把数组排成最小的数
// 面试题45:把数组排成最小的数 // 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼 // 接出的所有数字中最小的一个.例如输入数组{3, 32, 321},则打印出这3 ...
- 面试题45. 把数组排成最小的数
题目: 面试题45. 把数组排成最小的数 题解: 1. 题解一: 2. 题解二: * 解题思路:* 先将整型数组转换成String数组,然后将String数组排序,最后将排好序的字符串数组拼接出来.关 ...
- 【剑指offer-Java版】33把数组排成最小的数
把数组排成最小的数 难点在于比较规则的确定以及比较规则的正确性证明 比如:仅仅是局部的两个数字的顺序较小,如何保证整个数组按此规则进行排序后达到全局的较小 书中关于这一点的证明直接用的反证法,忘的差不 ...
- 33:把数组排成最小的数
/*** 面试题33:把数组排成最小的数* 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.* 例如输入数组{3,32,321},则打印出这三个数字能排成的 ...
- 算法:把数组排成最小的数
* @Description 把数组排成最小的数* @问题:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.* 例如输入数组{3,32,321},则打印出这 ...
- 【LeetCode】剑指 Offer 45. 把数组排成最小的数
[LeetCode]剑指 Offer 45. 把数组排成最小的数 文章目录 [LeetCode]剑指 Offer 45. 把数组排成最小的数 package offer;import java.uti ...
最新文章
- 柱状图设置坐标轴名称_职场老鸟珍藏的柱状图技巧
- 职场健康:缓解脖子酸
- Kubernetes存储卷的使用
- 如何优雅地「蜗居」?
- c语言autoi函数如何使用,C++的auto声明、memset函数
- 微软著名程序员、歌手、NBA球队老板保罗·艾伦逝世,盖茨、库克等大佬发文悼念...
- SugarCRM 去掉 header 应用程序 下拉菜单
- Redhat 5.4 Oracle 10g RAC 删除节点
- Win10 如何把MP4格式视频制作成屏幕保护
- [技巧]QQ密技(一)
- Android Telephony通话状态更新消息上报流程
- 常见的shell介绍(与bash功能类似的应用程序有哪些)
- python3 + Scrapy爬虫学习之创建项目
- mysql pga_PGA的监控与调整
- Java的流程控制语句
- 《OpenGL超级宝典》环境搭建
- OC10 -- block / 多态
- 【粤拼】手工整理《岳阳楼记》
- NOIP提高组完善程序题目分析
- 知道swift为什么是面向协议编程么?不知道,还不快来学习!