原题
https://leetcode-cn.com/problems/largest-number/
思路
1.定义排序函数
2.排序
3.输出结果
题解
package cn.codemao.botmao.admin;
import java.util.Arrays;
import java.util.Comparator;
/**
* @version 1.0
* @author: zhangkun@codemao.cn
* @description:
* @create: 2021-04-12 12:02
**/
public class Code179 {
public static void main(String[] args) {
int[] nums = {3,30,34,5,9};
System.out.println(largestNumber(nums));
}
public static String largestNumber(int[] nums) {
// 1.定义排序函数
// 2.排序
// 3.输出结果
int len = nums.length;
String[] strNums = new String[len];
for (int i = 0; i < len; i++) {
strNums[i] = String.valueOf(nums[i]);
}
Arrays.sort(strNums, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
// 3,30 => 3,30
// 3,32 => 3,32
// 3,34 => 34,3
return (o2+o1).compareTo(o1+o2);
}
});
StringBuffer res = new StringBuffer();
if (strNums[0].equals("0")) {
return "0";
}
for (int i = 0; i < len; i++) {
res.append(strNums[i]);
}
return res.toString();
}
}