题解 | #最大数#

最大数

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();
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:20
点赞 评论 收藏
分享
醉蟀:你不干有的是人干
点赞 评论 收藏
分享
05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务