Largest Number——LeetCode
2015-04-20 19:36
169 查看
Given a list of non negative integers, arrange them such that they form the largest number.
For example, given
Note: The result may be very large, so you need to return a string instead of an integer.
题目大意:给定一个数组,数组里都是非负整数,求一个组合使得这个数是最大的。
解题思路:这个题一开始我是自定义class然后写comparator,首先比较第一位数,然后比较第二位……后来想了一下其实直接把两个数转为String,然后分别前后拼接一下就可以比较了。直接sort就可以得到结果,代码更清晰。或者定义一个PriorityQueue,自定义comparator,把给定的数组转为这个queue也是一样的。
For example, given
[3, 30, 34, 5, 9], the largest formed number is
9534330.
Note: The result may be very large, so you need to return a string instead of an integer.
题目大意:给定一个数组,数组里都是非负整数,求一个组合使得这个数是最大的。
解题思路:这个题一开始我是自定义class然后写comparator,首先比较第一位数,然后比较第二位……后来想了一下其实直接把两个数转为String,然后分别前后拼接一下就可以比较了。直接sort就可以得到结果,代码更清晰。或者定义一个PriorityQueue,自定义comparator,把给定的数组转为这个queue也是一样的。
public String largestNumber(int[] nums) { if (nums == null || nums.length < 1) { return null; } LinkedList<String> res = new LinkedList<>(); for (int num : nums) { res.add(String.valueOf(num)); } StringBuilder sb = new StringBuilder(); Collections.sort(res, new Comparator<String>() { @Override public int compare(String o1, String o2) { String s1 = o2 + o1; String s2 = o1 + o2; return s1.compareTo(s2); } }); for (String next : res) { sb.append(next); } int cnt = 0; while (cnt < sb.length() && sb.charAt(cnt) == '0') { cnt++; } return sb.substring(cnt == sb.length() ? cnt - 1 : cnt); }
相关文章推荐
- Largest Number-LeetCode
- Leetcode Largest Number
- leetcode 之Largest Number
- Leetcode (8) Largest Number (剑指offer 33题 把数组排成最小的数)
- LeetCode 之Largest Number(C++)
- 179. Largest Number LeetCode
- Largest Number leetcode
- LeetCode Largest Number(排序)
- LeetCode Largest Number JAVA 快速排序
- Leetcode Largest Number
- Leetcode Largest Number
- Largest Number leetcode
- #leetcode#Largest Number
- 【leetcode】 Largest_Number
- LeetCode—Largest Number
- LeetCode之Largest Number
- Leetcode Largest Number c++ solution
- [LeetCode] Largest Number At Least Twice of Others 至少是其他数字两倍的最大数
- LeetCode-748-Largest Number At Least Twice of Others(C语言实现)
- Leetcode Largest Number