import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 最大数
* @param nums int整型一维数组
* @return string字符串
*/
public String solve (int[] nums) {
// write code here
if (nums == null || nums.length == 0) {
return "";
}
// 当只有一个元素的时候,直接返回
if(nums.length == 1) {
return nums[0] + "";
}
// 使用大顶堆进行排序
PriorityQueue<String> priorityQueue = new PriorityQueue<>
(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return (o2 + o1).compareTo(o1 + o2);
}
});
for (int i = 0; i < nums.length; i++) {
priorityQueue.offer(String.valueOf(nums[i]));
}
StringBuffer sb = new StringBuffer();
// 判断堆元素是否为0,为0直接返回0
if (priorityQueue.peek().equals("0")) {
return "0";
}
// 堆元素不为零进行拼接
while (!priorityQueue.isEmpty()) {
sb.append(priorityQueue.poll());
}
return sb.toString();
}
}