您的位置:首页 > 其它

[LeetCode]Largest Number

2016-11-28 22:13 309 查看
https://leetcode.com/problems/largest-number/

核心是建Comparator的问题,两个数排序时比较办法是,将其组合,比较谁在前谁在后所得结果更大。

s2.compareTo(s1)所得结果是降序,s1.compareTo(s2)所得结果是升序。

public class Solution {
public String largestNumber(int[] nums) {
if (nums == null || nums.length == 0) return "0";
Integer[] temp = new Integer[nums.length];
for (int i = 0; i < nums.length; i++) temp[i] = nums[i];
Arrays.sort(temp, new Comparator<Integer>() {
public int compare(Integer n1, Integer n2) {
String s1 = n1 + "" + n2, s2 = n2 + "" + n1;
return s2.compareTo(s1);
}
});
if (temp[0] == 0) return "0";
StringBuilder sb = new StringBuilder();
for (Integer i : temp) sb.append(i);
return sb.length() == 0 ? "0" : sb.toString();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: