劍指offer -- 把陣列排成最小的數
阿新 • • 發佈:2018-11-05
題目描述
輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列{3,32,321},則打印出這三個數字能排成的最小數字為321323。
AC程式碼
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Solution {
public String PrintMinNumber(int [] numbers) {
StringBuilder sb = new StringBuilder();
List<String> list = new ArrayList<>();
for(int number : numbers) list.add(number + "");
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return (o1 + o2).compareTo((o2 + o1));
}
});
for(String s : list)
sb.append(s);
return sb.toString();
}
}