leetcode--179:Largest Number
来源:互联网 发布:变色龙引导u盘安装mac 编辑:程序博客网 时间:2024/05/02 05:02
题目: Given a list of non negative integers, arrange them such that they form the largest number.
例子: 给定由非负整数组成的数组[3, 30, 34, 5, 9]
, 它们所组成的最大整数为: 9534330
.
第一眼看到这题目,脑中闪现的思路就是:先找出各个数的首位数字,然后从大到小排序,首位数字相同再比较第二位数字的大小,写了一段时间后,发现写不下去了,因为当两个数的前几位数字相同时,还得考虑多出来的那位数字的大小问题,比如
121,12 组成12121,
122,12组成12212, 即多出来的那位数字必须大于最后一位相同的数字,感觉走不下去了。
于是决定转换思路:从最后的结果来看,它是通过对原来的数组中的元素进行调换顺序后,顺序输出得出的。 两个元素调换顺序的规则是:比较两个元素在不同顺序下所组成的数的大小。比如两个数:a,b ,需要比较数ab和ba的大小。
因此就有了下面的代码(java):
public class Solution { public String largestNumber(int[] arr) { String[] strs = new String[arr.length]; for(int i=0; i<arr.length; i++) { strs[i] = Integer.toString(arr[i]); } Arrays.sort(strs, new Comparator<String>() { @Override public int compare(String s1, String s2) { String ss1 = s1 + s2; String ss2 = s2 + s1; int i=0; while(i<ss1.length()) { if(ss1.charAt(i)!=ss2.charAt(i)) { return ss1.charAt(i) - ss2.charAt(i); } ++i; } return 0; } } ); StringBuilder sb = new StringBuilder(); for(int i=strs.length-1; i>=0; i--) { sb.append(strs[i]); } return sb.toString().replaceFirst("^0+(?!$)", ""); } }
0 0
- [leetcode]179 Largest Number
- leetcode 179: Largest Number
- LeetCode(179) Largest Number
- leetcode--179:Largest Number
- [LeetCode 179]Largest Number
- LeetCode(179) Largest Number
- leetcode 179: Largest Number
- [leetcode] 179 Largest Number
- LeetCode 179 Largest Number
- Leetcode.179 Largest Number
- LeetCode 179 Largest Number
- Leetcode 179: largest number
- LeetCode[179] Largest Number
- leetcode 179 largest number
- Leetcode 179 Largest Number
- [Leetcode] #179 Largest Number
- LeetCode 179 Largest Number
- [Leetcode 179, Medium] Largest number
- 【翻譯】android developer api指南翻譯 location and maps
- [leetcode] 97 Interleaving String
- STL系列--- 随机三趣题——随机重排,文件中随机取一行,生成N个随机数。
- 我为什么开始写博客
- POJ 3087Shuffle'm Up
- leetcode--179:Largest Number
- java--反射
- 重构笔记——将类内联化
- 热门智力题 过桥问题和倒水问题
- 十天学Linux内核之第七天---电源开和关时都发生了什么
- 树的非递归深度优先遍历
- 2015年1月26日 星期一 [iOS]UIwebview左右滑動回上一頁
- poj1742 dp
- CoreText 使用教程:以创建一个简单的杂志应用为例