【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()
相关推荐
梦梦代码精13 小时前
电商系统不是技术堆叠:LikeShop如何用分层Hold住复杂业务?
java·docker·代码规范
凯瑟琳.奥古斯特13 小时前
K次取反最大化数组和解法(力扣1005)
开发语言·c++·算法·leetcode·职场和发展
负责的蛋挞14 小时前
异步HttpModule的实现方式
java·服务器·前端
AC赳赳老秦14 小时前
防火墙规则批量配置实战:OpenClaw 自动生成模板、批量下发与合规性校验全解析
java·开发语言·人工智能·python·github·php·openclaw
Jerry14 小时前
LeetCode 203. 移除链表元素
算法
Tian_Hang14 小时前
Eclipse Ditto 物模型相关代码
java·运维·服务器·ide·eureka·eclipse
地平线开发者14 小时前
征程 6 | 工具链 QAT ObserverBase 源码解析
算法
地平线开发者15 小时前
【地平线 征程 6 工具链进阶教程】QAT 训练常见问题和排查
算法
地平线开发者15 小时前
征程 6 | 直方图量化配置与校准实例
算法