- 排序,我用的优先级队列,本质上一致的。if(s1+s2>s2+s1){ s2的值小于s1,}
java的比较器代码lambda表达式(o1,o2)->Integer.compare(Integer.parseInt(o1+o2),Integer.parseInt(o2+o1))
- 基数排序的思路,转为字符串,从高位往低位,逐个排序,高位越小,优先级越高,并且空字符优先级最低。感觉和上面思路差不多。
import java.util.*;
public class Solution {
public String PrintMinNumber(int [] numbers) {
PriorityQueue<String> queue = new PriorityQueue<>((o1,o2)->Integer
.compare(Integer.parseInt(o1+o2),Integer.parseInt(o2+o1)));
for(int i=0;i<numbers.length;i++){
queue.add(String.valueOf(numbers[i]));
}
String res="";
for(int i=0;i<numbers.length;i++){
res+=queue.poll();
}
return res;
}
} 
京公网安备 11010502036488号