把数组排成最小的数
来源:互联网 发布:js.anji ceva.com 编辑:程序博客网 时间:2024/05/17 07:51
题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
算法:
首先思考,当我们将数组随机排列时,它们最后形成的数字的位数都是相同的,那么如果前边的位数上的数字越小,则最后的结果越小,也就是说一个数组为[3, 134,34, 45], 则显然当最后形成的数字的首位为1的时候最小,此时我们确定了第一个数字,则剩下的数组中显然应该是3, 那么如果我们将所有的数组元素按照从第一位从小到大进行排序,则最后顺序形成的数字必然最小。
代码如下:
public String PrintMinNumber(int [] numbers) { if (numbers == null || numbers.length < 0){ return ""; } ArrayList<String> data = new ArrayList<>(); for (int i = 0; i < numbers.length; i++) { data.add(numbers[i] + ""); } Collections.sort(data, new Comparator<String>() { @Override public int compare(String o1, String o2) { String a = o1 + o2; String b = o2 + o1; return a.compareTo(b); } }); StringBuilder result = new StringBuilder(); for (String s : data) { result.append(s); } return result.toString(); }
0 0
- 把数组排成最小的数--总结
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数--总结
- 把数组排成最小的数--总结
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 把数组排成最小的数
- 关于qt5在win7下发布 & 打包
- 红黑树深入剖析及Java实现
- 日本IT程序员的观感
- 基于Spartan-6平台简单实现异步fifo与UART串口通信的联合使用
- TextView中ellipsize属性
- 把数组排成最小的数
- 06-图1 列出连通集 (25分)
- Floyd算法
- 米扑科技:草根连续创业的前赴后继者
- SVN基础知识回顾(一)
- Python学习中的一句笑话
- 【Springmvc 4】---- 参数接受方式小结
- c++ dll接口返回字符串
- Java--类与对象