剑指Offer------把数组排成最小的数
来源:互联网 发布:centos 桥接网络 编辑:程序博客网 时间:2024/06/05 17:45
题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
<分析>
先把整型数组转换成String数组,然后将String数组排序,最后将排好序的字符串数组拼接
排序规则如下:
若ab>ba 则a>b
若ab<ba 则a<b
若ab=ab 则a=b
解释说明:
比如"3"<"31" 但是"331">"313",所以要将两者拼接起来进行比较
import java.util.Arrays;import java.util.Comparator;/** * * @author zy * @date 2017年10月5日 上午10:36:44 * @Decription 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321}, * 则打印出这三个数字能排成的最小数字为321323。 */public class Ex22 {public String PrintMinNumber(int[] numbers) {if (numbers == null || numbers.length == 0) {return "";}int len = numbers.length;String[] strings = new String[len];StringBuilder sb = new StringBuilder();for (int i = 0; i < strings.length; i++) {strings[i] = String.valueOf(numbers[i]);}Arrays.sort(strings, new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {String c1 = o1+o2;String c2 = o2+o1;return c1.compareTo(c2);}});for (int i = 0; i < strings.length; i++) {sb.append(strings[i]);}return sb.toString();}}
阅读全文
0 0
- 剑指offer-33:把数组排成最小的数
- 剑指offer:把数组排成最小的数
- 【剑指offer】把数组排成最小的数
- 【剑指offer】Q33:把数组排成最小的数
- 九度《剑指offer》把数组排成最小的数
- 剑指Offer之把数组排成最小的数
- 剑指offer系列源码-把数组排成最小的数
- 剑指offer 33 把数组排成最小的数
- 剑指offer--把数组排成最小的数
- 剑指offer之把数组排成最小的数
- 《剑指offer》把数组排成最小的数
- 剑指offer:把数组排成最小的数
- 【剑指Offer】把数组排成最小的数
- 剑指offer—把数组排成最小的数
- 《剑指offer》——把数组排成最小的数
- 【剑指offer】之把数组排成最小的数
- 剑指offer:把数组排成最小的数
- 剑指offer:把数组排成最小的数
- Evaluate Division
- [Linux操作系统]Linux操作系统的内存分布
- linux下配置redis后台启动
- 多线程常用方法(一)
- Java并发编程 06 闭锁、同步屏障、信号量详解
- 剑指Offer------把数组排成最小的数
- Caffe移植到windows
- 超级详细----ESP3266(2)
- nginx在ubuntu下的快速配置
- 51nod 1276 岛屿的数量 思维题,很棒的题目
- ORB特征原理
- python 列表与元组
- iOS版QQ的黏性下拉刷新效果简易实现
- CSDN-markdowm编辑文章技巧