- 题目
输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个
- 示例
输入: [3,30,34,5,9]
输出: “3033459”
- 算法
先转换成字符串数组,然后排序。
- 代码
class Solution {
public String minNumber(int[] nums) {
int n = nums.length;
String[] str = new String[n];
for (int i = 0; i < n; i++) {
str[i] = String.valueOf(nums[i]);
}
Arrays.sort(str, (a,b)->{
return (a+b).compareTo(b+a);
});
StringBuilder sb = new StringBuilder();
for (String s : str) {
sb.append(s);
}
return sb.toString();
}
}