您的位置:首页 > 其它

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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: