//思路:
//可以看成是一个排序问题,在比较两个字符串 S1 和 S2 的大小时,
//应该比较的是 S1+S2 和 S2+S1 的大小,如果 S1+S2 < S2+S1,
//那么应该把 S1 排在前面,否则应该把 S2 排在前面。
import java.util.Arrays;
import java.util.Comparator;
//把数组排成最小的数
public String PrintMinNumber(int [] numbers) {
StringBuilder res = new StringBuilder();
if(numbers==null || numbers.length==0){
return res.toString();
}
int n = numbers.length;
String[] nums = new String[n];
for(int i=0;i<n;i++){
nums[i]=numbers[i]+"";
}
//TODO:定义排序规则
Arrays.sort(nums, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
//如果 s1+s2 < s2+s1,则 s1 排在前面(默认是按照升序排列的)
return (s1+s2).compareTo(s2+s1);
}
});
for(String num:nums){
res.append(num);
}
return res.toString();
}
https://www.mianshi.online,https://www.i9code.cn
本文由博客一文多发平台 OpenWrite 发布!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。