AcWing 58. 把数组排成最小的数
原题链接
中等
作者:
JAVA小老弟
,
2020-07-28 13:34:26
,
所有人可见
,
阅读 496
class Solution {
public String printMinNumber(int[] nums) {
String res = "";
List<Integer> list = new ArrayList<>();
for(int num:nums)
list.add(num);
// 对list 进行一个cmp 排序
Collections.sort(list,(o1,o2)->cmp(o1,o2));
for(int i=0;i<nums.length;i++)
res = res + list.get(i);
return res;
}
// str1+str2 和 str2+str1进行排序对比 哪个小说明哪个在前面 如 32和1 321-132>0 所以1在前面
public int cmp(int x,int y){
String str1 = String.valueOf(x);
String str2 = String.valueOf(y);
return (str1+str2).compareTo(str2+str1);
}
}
哦