1、自定义排序规则。两个相加,大的放前面。
PriorityQueue<String> queue = new PriorityQueue<String>((a,b)->((b+a).compareTo(a+b)));
//如果是(a+b).compareTo(b+a),就是相加的值小的排在前面。
2、放入一个优先级队列里。
3、取出组装。
因为最大数可能溢出。用字符串来表示合理一点。
为00的时候处理一下。
class Solution {
public String largestNumber(int[] nums) {
PriorityQueue<String> queue = new PriorityQueue<String>((a,b)->((b+a).compareTo(a+b)));
for(int i : nums){
queue.offer(String.valueOf(i));
}
String res = "";
while(queue.size() > 0){
res += queue.poll();
}
if(res.charAt(0) == '0' ){
return "0";
}
return res;
}
}