排序法
思路很巧妙,具体看注释,证明过程参考:K神题解
class Solution {
public String minNumber(int[] nums) {
// 转化为排序问题,A拼接B > B拼接A,则B > A
String[] strings = new String[nums.length];
for (int i = 0; i < nums.length; ++i) strings[i] = String.valueOf(nums[i]);
// 自定义Comparator,重写compare方法,利用String自带的compareTo方法比较字符串的字典序
Arrays.sort(strings, new Comparator<String>(){
@Override
public int compare(String A, String B) {
return (A + B).compareTo(B + A);
}
});
StringBuilder sb = new StringBuilder();
for (String string : strings) sb.append(string);
return sb.toString();
}
}