题解 | #最大数#
最大数
https://www.nowcoder.com/practice/fc897457408f4bbe9d3f87588f497729
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(); } }