思路:可以参考 优先队列中Comparator写法总结 假设(b+a)>(a+b),compareTo返回1,a直接放在最后一个位置上,不会往上走,说明这是大顶堆。
public String largestNumber(int[] nums) {
int len=nums.length;
String[] array=new String[len];
for(int i=0;i<len;i++){
array[i]=String.valueOf(nums[i]);
}
Arrays.sort(array,(a,b)->{
return (b+a).compareTo(a+b);
});
if(array[0].equals("0")) return "0";
StringBuilder res=new StringBuilder();
for(int i=0;i<len;i++){
res.append(array[i]);
}
return res.toString();
}