輸入一個正整數數組,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。
示例 1:
輸入: [10,2]
輸出: "102"
示例 2:
輸入: [3,30,34,5,9]
輸出: "3033459"
提示:
0 < nums.length <= 100
說明:
輸出結果可能非常大,是以你需要傳回一個字元串而不是整數
拼接起來的數字可能會有前導 0,最後結果不需要去掉前導 0
代碼:
class Solution {
public String minNumber(int[] nums) {
if(nums==null||nums.length==0)
{
return " ";
}
List<Integer> list = new LinkedList<>();
for(int i=0;i<nums.length;i++)
{
list.add(nums[i]);
}
Collections.sort(list,new Comparator<Integer>(){
@Override
public int compare(Integer o1,Integer o2)
{
String s1 = o1+"" +o2;
String s2 = o2+""+o2;
return s1.compareTo(s2);
}
});
StringBuilder result = new StringBuilder();
for(int i:list)
{
result.append(i);
}
return result.toString();
}
}