题目:179. 最大数
思路:自定义排序。
参考 官方题解。
希望高位数字越大越好,官方题解定义了一个比较函数,很巧妙,把两个数字当作字符串拼起来。详细证明过程参见该题解。
代码:
class Solution {
public String largestNumber(int[] nums) {
String[] strs = new String[nums.length];
for (int i = 0; i < nums.length; i ++) {
strs[i] = String.valueOf(nums[i]);
}
Arrays.sort(strs, new Comparator<String>(){
public int compare (String o1, String o2) {
String s1 = o1 + o2;
String s2 = o2 + o1;
return s2.compareTo(s1);
}
});
if (strs[0].equals("0")) {
return "0";
}
String res = new String();
for (String s : strs) {
res += s;
}
return res;
}
}