【leetcode hot 100 215】数组中的第K个最大元素

解法一:维护最大最小值 -> 堆 -> k个元素的最小值堆

java 复制代码
class Solution {
    public int findKthLargest(int[] nums, int k) {
        // 维护最大最小值 -> 堆 -> k个元素的最小值堆
        PriorityQueue<Integer> heap = new PriorityQueue<>((n1, n2) -> n1 - n2);

        for (int i = 0; i < nums.length; i++) {
            heap.offer(nums[i]);
            if (heap.size() > k) {
                // 维护k个元素的最小值堆
                heap.poll();
            }
        }

        return heap.peek();
    }
}

注意:

  • 当堆元素个数大于k时,要剔除元素:heap.poll()
相关推荐
noipp27 分钟前
推荐题目:洛谷 P10907 [蓝桥杯 2024 国 B] 蚂蚁开会
c语言·c++·算法·编程·洛谷
何极光1 小时前
IDEA集成Maven
java·maven·intellij-idea
程序员二叉1 小时前
【JUC】ThreadLocal底层原理|内存泄漏|弱引用|跨线程传递方案
java·开发语言·面试·职场和发展·juc
程序员二叉1 小时前
【JUC】线程池全套深度详解|参数|流程|拒绝策略|调优|异常处理
java·开发语言·jvm·算法·面试·juc
老马识途2.01 小时前
在AI的帮助下理解spring的启动过程
java·前端·spring
青山木1 小时前
Hot 100 --- 轮转数组
java·数据结构·算法
徐小夕2 小时前
Loop Engineering 深度解析与实战指南(全网最全)
前端·算法·github
Qt程序员2 小时前
掌握 Linux 内核调度:从原理到实现(进程篇)
java·开发语言
code bean2 小时前
【LangChain】检索器完全指南:从向量检索到生产级 RAG 架构
java·开发语言·微服务
大白菜和MySQL2 小时前
java应用排查高线程
java·python