public String largestNumber(int[] nums) {
String[] strNums = new String[nums.length];
for (int i = 0; i< nums.length; i++) {
strNums[i] = String.valueOf(nums[i]);
}
Arrays.sort(strNums, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
String s1 = o1 + o2;
String s2 = o2 + o1;
return s2.compareTo(s1);
}
});
if (strNums[0].equals("0")) {
return "0";
}
String str = "";
for (int i = 0; i<strNums.length;i++) {
str += strNums[i];
}
return str;
}
1.先将数组转成字符串数组
2.对字符串数组排序,
规则:将2个数字交换拼接成2个字符串,比较大小
3.当数组第一个字符为"0"时,直接输出0
4.循环拼接字符串输出