把数组排成最小的数
题目:
输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
示例 1:
输入: [10,2]
输出: "102"
示例 2:
输入: [3,30,34,5,9]
输出: "3033459"
解题思路: 根据两数字组合的结果来进行升序排序即可
class Solution {
public String minNumber(int[] nums) {
List<String> list = new ArrayList(nums.length);
for(int num : nums) {
list.add(String.valueOf(num));
}
Collections.sort(list, (a, b) -> {
return (a + b).compareTo(b + a);
});
StringBuffer sb = new StringBuffer();
for(String str : list) {
sb.append(str);
}
return sb.toString();
}
}