【Java面试题】把数组排成最小的数
【题目】:
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
【示例】:
例如输入数组{3
,32
,321
},则打印出这三个数字能排成的最小数字为321323
。
思路:
这道题比较简单,比较组成数字的大小即可;
注意点:
- 比较的是结合后的数字,
- 在int[]和string[]的转换
【关键点】: 数组,字符串拼接
【Java】:
import java.util.ArrayList;
import java.util.Arrays;//数组排序
import java.util.Comparator;//比较首字符的大小(按ASCII码顺序)public class Solution {public String PrintMinNumber(int [] numbers) {if(numbers == null || numbers.length == 0) return "";int len = numbers.length;String[] str = new String[len];//结果for(int i = 0; i < len; i++){str[i] = String.valueOf(numbers[i]);//将数组int转存string类型}Arrays.sort(str,new Comparator<String>(){//因为3小于31,所以不能直接比较,需要拼接后比较@Override//重写sort排序方法(比较的是字符串拼接后的数字)public int compare(String s1, String s2) {//比较的在字母表中的顺序String c1 = s1 + s2;String c2 = s2 + s1;return c1.compareTo(c2);//c1和c2比较差值,返回差值}});StringBuilder sb = new StringBuilder();//暂存可变字符串for(int i = 0; i < len; i++){sb.append(str[i]);//将str[]数组拼接为字符串}return sb.toString();//sb转string}
}
【Java面试题】把数组排成最小的数相关推荐
- 面试题45. 把数组排成最小的数
题目: 面试题45. 把数组排成最小的数 题解: 1. 题解一: 2. 题解二: * 解题思路:* 先将整型数组转换成String数组,然后将String数组排序,最后将排好序的字符串数组拼接出来.关 ...
- 33:把数组排成最小的数
/*** 面试题33:把数组排成最小的数* 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.* 例如输入数组{3,32,321},则打印出这三个数字能排成的 ...
- 《剑指offer》-- 把数组排成最小的数、丑数、二进制中1的个数、表示数值的字符串、替换空格
一.把数组排成最小的数: 1.题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为 ...
- 算法:把数组排成最小的数
* @Description 把数组排成最小的数* @问题:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.* 例如输入数组{3,32,321},则打印出这 ...
- 【LeetCode】剑指 Offer 45. 把数组排成最小的数
[LeetCode]剑指 Offer 45. 把数组排成最小的数 文章目录 [LeetCode]剑指 Offer 45. 把数组排成最小的数 package offer;import java.uti ...
- printf打印数组_(45)C++面试之把数组排成最小的数
// 面试题45:把数组排成最小的数 // 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼 // 接出的所有数字中最小的一个.例如输入数组{3, 32, 321},则打印出这3 ...
- 【剑指offer-Java版】33把数组排成最小的数
把数组排成最小的数 难点在于比较规则的确定以及比较规则的正确性证明 比如:仅仅是局部的两个数字的顺序较小,如何保证整个数组按此规则进行排序后达到全局的较小 书中关于这一点的证明直接用的反证法,忘的差不 ...
- 数据结构与算法--将数组排成最小的数
将数组排成最小的数 题目:输入一个正整数的数组,将数组中所有数字拼接在一起排列成一个新的数,打印能拼接出来的所有数字中最小的一个, 案例:输入数组{12,4,55},则能打印出最小的数组是:12455 ...
- 列表转化成数组_30. 把数组排成最小的数
把数组排成最小的数 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为3213 ...
- 剑指 Offer 笔记: T45. 把数组排成最小的数
T45. 把数组排成最小的数 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个. 示例 1: 输入: [10,2] 输出: "102" ...
最新文章
- mysql数据库表的管理(增删改)
- SVN 版本控制的数据合并规则
- 程序员python工作_程序员如何在工作中进步
- php打印订单,WooCommerce: 打印订单
- Iris数据集神经网络训练
- 热力地图高德_调用高德地图API(热力图)详解
- sql server (sqlexpress) 服务因 3417 (0xd59) 服务性错误而停止(转自太原市李江软件开发工作室)...
- 揭秘跨境电商亚马逊店铺最新骗局!!小白做亚马逊店铺如何防止上当受骗?
- The following packages will be SUPERCEDED by a higher-priority channel是什么意思?
- 木瓜移动创始人沈思专访——从平台到孵化器
- 2021查询高考成绩提前批分数线,快看看!2021高考部分省市“预测分数线”出炉!两点需要注意...
- 服务注册中心如何选型
- 【GCC】2: RTCP cc-feeback 抓包对比协议
- slope one predictors
- win10接USB设备(移动硬盘扫码枪之类)蓝屏问题处理
- 详解各种各样的 “BW” —OBW,IBW ,RBW,VBW
- SUMO 交通小区 OD流量建模 OD转换交通流
- 一文读懂智慧高速车路协同现状与未来(附现状合集)
- 在Win10任务栏上添加文字
- Qt常用控件介绍(一)