32、把数组排成最小的数
一、题目
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
二、解法
解题思路:
* 先将整型数组转换成String数组,然后将String数组排序,最后将排好序的字符串数组拼接出来。关键就是制定排序规则。
* 排序规则如下:
* 若ab > ba 则 a > b,
* 若ab < ba 则 a < b,
* 若ab = ba 则 a = b;
* 解释说明:
* 比如 "3" < "31"但是 "331" > "313",所以要将二者拼接起来进行比较
1 import java.util.ArrayList; 2 import java.util.Collections; 3 import java.util.Comparator; 4 public class Solution { 5 public String PrintMinNumber(int [] numbers) { 6 int n = numbers.length; 7 StringBuilder s = new StringBuilder();//新建SB对象 8 ArrayList<Integer> list = new ArrayList<Integer>();//存储数组用ArrayList 9 for(int i = 0 ; i < n; i++) 10 list.add(numbers[i]);//添加到list 11 Collections.sort(list,new Comparator<Integer>(){//list排序,实现Comparator接口 12 @Override 13 public int compare(Integer str1, Integer str2) { 14 String s1 = str1+""+str2; 15 String s2 = str2 + "" + str1; 16 return s1.compareTo(s2); 17 } 18 }); 19 for(int j : list) 20 s.append(j); 21 return s.toString(); 22 } 23 }
转载于:https://www.cnblogs.com/fankongkong/p/7455437.html
32、把数组排成最小的数相关推荐
- 【剑指offer-Java版】33把数组排成最小的数
把数组排成最小的数 难点在于比较规则的确定以及比较规则的正确性证明 比如:仅仅是局部的两个数字的顺序较小,如何保证整个数组按此规则进行排序后达到全局的较小 书中关于这一点的证明直接用的反证法,忘的差不 ...
- 33:把数组排成最小的数
/*** 面试题33:把数组排成最小的数* 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.* 例如输入数组{3,32,321},则打印出这三个数字能排成的 ...
- 《剑指offer》-- 把数组排成最小的数、丑数、二进制中1的个数、表示数值的字符串、替换空格
一.把数组排成最小的数: 1.题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为 ...
- 算法:把数组排成最小的数
* @Description 把数组排成最小的数* @问题:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.* 例如输入数组{3,32,321},则打印出这 ...
- printf打印数组_(45)C++面试之把数组排成最小的数
// 面试题45:把数组排成最小的数 // 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼 // 接出的所有数字中最小的一个.例如输入数组{3, 32, 321},则打印出这3 ...
- 列表转化成数组_30. 把数组排成最小的数
把数组排成最小的数 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为3213 ...
- 数据结构与算法--将数组排成最小的数
将数组排成最小的数 题目:输入一个正整数的数组,将数组中所有数字拼接在一起排列成一个新的数,打印能拼接出来的所有数字中最小的一个, 案例:输入数组{12,4,55},则能打印出最小的数组是:12455 ...
- 【LeetCode】剑指 Offer 45. 把数组排成最小的数
[LeetCode]剑指 Offer 45. 把数组排成最小的数 文章目录 [LeetCode]剑指 Offer 45. 把数组排成最小的数 package offer;import java.uti ...
- 面试题45. 把数组排成最小的数
题目: 面试题45. 把数组排成最小的数 题解: 1. 题解一: 2. 题解二: * 解题思路:* 先将整型数组转换成String数组,然后将String数组排序,最后将排好序的字符串数组拼接出来.关 ...
- 剑指 Offer 笔记: T45. 把数组排成最小的数
T45. 把数组排成最小的数 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个. 示例 1: 输入: [10,2] 输出: "102" ...
最新文章
- 有“肌肉”有“血管”!波兰团队耗时5年研发超逼真仿生机械臂,网友:很怪异也很牛掰...
- linux分配iomem,Linux中__iomem
- php基础之时间格式化
- MySQL备份与恢复详解(热备、冷备等相关术语解释)
- 推荐一下:微软的Ramp Up学习计划
- b级计算机机房标准,B级电子信息系统机房技术要求国标GB50174–2008
- x内存满白苹果解决_苹果x出现白苹果的现象及解决办法
- 文件夹自定义重命名的步骤
- linux下RabbitMQ的配置和安装
- AVD安卓模拟器黑屏
- 抖音小店无货源,怎么操作可以出单?资深电商人在线分享
- layui数据表格与后台交互进行渲染
- 六、cocos2dx-效果(Effect)
- 总账凭证之间核销的SQL
- 使用C51单片机实现《两只老虎》
- 今年建筑工程设计乙级资质办理申报流程
- 云信小课堂|如何实现音视频安全检测?
- showModalDialog取得父窗口的语法
- 架构师须知97件事精华版
- CRM助力医药行业通路建设
热门文章
- Hadoop1.2.1源码解析系列:JT与TT之间的心跳通信机制——命令篇
- 2022内推 | 字节跳动校招 + 社招,包括NLP、CV和ASR和研究员等
- 简单实例讲解为何深度学习有效
- 百面机器学习—2. 特征工程与模型评估要点总结
- 遗传算法初学-旅行商问题
- 深度学习2.0-12.神经网络与全连接层之数据集的加载
- 1.2 Linux的网络配置和连接工具
- 铁子们,2019博客之星投票活动开始了!帮我投个票呗
- PyTorch:模型训练和预测
- Matplotlib Toolkits:三维绘图工具包matplotlib.mplot3d