给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。
示例 1:
输入: [10,2]
输出: 210
说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。
思路
(1)核心在于写出重新复写sort()方法,使之排序
https://leetcode.com/problems/largest-number/discuss/53158/My-Java-Solution-to-share
解法
执行用时 :5 ms, 在所有 Java 提交中击败了95.79%的用户
内存消耗 :36.1 MB, 在所有 Java 提交中击败了83.39%的用户
class Solution {
public String largestNumber(int[] nums) {
if(nums.length==0 ){
return "";
}
String[] array = new String[nums.length];
for(int i=0; i<array.length; i++){
array[i] = String.valueOf(nums[i]);
}
Arrays.sort(array, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
String s1 = o1+o2;
String s2 = o2+o1;
return s2.compareTo(s1);
}
});
if(array[0].charAt(0)=='0'){
return "0";
}
StringBuilder sb =new StringBuilder();
for(int i=0; i<array.length; i++){
sb.append(array[i]);
}
return sb.toString();
}
}