
方法:排序

class Solution {
public String largestNumber(int[] nums) {
int n = nums.length;
String[] numbers = new String[n];
for (int i = 0; i < nums.length; i++) {
numbers[i] = String.valueOf(nums[i]);
}
//compareTo()方法比较的时候是按照ASCII码逐位比较的,
//通过比较(a+b)和(b+a)的大小,就可以判断出a,b两个字符串谁应该在前面
Arrays.sort(numbers, (o1, o2) -> {return (o2 + o1).compareTo(o1 + o2);});
//如果排序后的第一个元素是0,那后面的元素肯定小于或等于0,直接返回"0"
if ("0".equals(numbers[0])) return "0";
StringBuilder sb = new StringBuilder();
for (String number : numbers) {
sb.append(number);
}
return sb.toString();
}
}