算法1
(排序)
本问题主要清除两个点
- 无论几位数,最高位最小的排在最前面,所以两个组合,进行比较。
- 比较器的使用
public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
若o1比o2大,返回正数,输出时o1排在o2后面,即升序。
Java 代码
class Solution {
public String printMinNumber(int[] nums) {
int n;
String s = " ";
ArrayList<Integer> list = new ArrayList<>();
n = nums.length;
for(int i = 0 ; i < n ; 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+""+o1;
return s1.compareTo(s2);
}
});
for(int j : list){
s+=j;
}
return s;
}
}