LeetCode Largest Number(排序)
2016-10-27 11:49
453 查看
题意:给出一个数组,求其能拼成组成的最大的数。
思路:假设有两个数n1,n2,比较(n1,n2)和(n2,n1)分别组成的字符串
代码如下:
public class Solution
{
public String largestNumber(int[] nums)
{
Integer[] nums_tmp = new Integer[nums.length];
for (int i = 0; i < nums.length; i++)
{
nums_tmp[i] = new Integer(nums[i]);
}
Comparator<Integer> cmp = new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
StringBuilder sb1 = new StringBuilder(), sb2 = new StringBuilder();
sb1.append(o1); sb1.append(o2);
sb2.append(o2); sb2.append(o1);
return sb2.toString().compareTo(sb1.toString());
}
};
Arrays.sort(nums_tmp, cmp);
StringBuilder ans = new StringBuilder();
for (int num : nums_tmp)
{
ans.append(num);
}
int i;
for (i = 0; i < ans.length() - 1; i++)
{
if (ans.charAt(i) != '0') break;
}
return ans.toString().substring(i);
}
}
思路:假设有两个数n1,n2,比较(n1,n2)和(n2,n1)分别组成的字符串
代码如下:
public class Solution
{
public String largestNumber(int[] nums)
{
Integer[] nums_tmp = new Integer[nums.length];
for (int i = 0; i < nums.length; i++)
{
nums_tmp[i] = new Integer(nums[i]);
}
Comparator<Integer> cmp = new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
StringBuilder sb1 = new StringBuilder(), sb2 = new StringBuilder();
sb1.append(o1); sb1.append(o2);
sb2.append(o2); sb2.append(o1);
return sb2.toString().compareTo(sb1.toString());
}
};
Arrays.sort(nums_tmp, cmp);
StringBuilder ans = new StringBuilder();
for (int num : nums_tmp)
{
ans.append(num);
}
int i;
for (i = 0; i < ans.length() - 1; i++)
{
if (ans.charAt(i) != '0') break;
}
return ans.toString().substring(i);
}
}
相关文章推荐
- LeetCode Largest Number JAVA 快速排序
- leetcode 之Largest Number
- leetcode largest number
- LeetCode Largest Number
- leetcode之largest number
- LeetCode Largest Number
- LeetCode之Largest Number
- #leetcode#Largest Number
- LeetCode Largest Number
- leetCode 179. Largest Number 字符串排序 | Medium | lambda表达式
- Largest Number-LeetCode
- Largest Number--LeetCode
- Leetcode (8) Largest Number (剑指offer 33题 把数组排成最小的数)
- Leetcode Largest Number
- Largest Number || LeetCode
- LeetCode—Largest Number
- LeetCode 之Largest Number(C++)
- Largest Number——LeetCode
- Leetcode Largest Number
- Leetcode Largest Number