【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()
相关推荐
却话巴山夜雨时i几秒前
347. 前 K 个高频元素【中等】
数据结构·算法·leetcode
蘑菇小白几秒前
数据结构--栈
数据结构·算法·
(●—●)橘子……1 分钟前
力扣344.反转字符串 练习理解
python·学习·算法·leetcode·职场和发展
qq_457924291 分钟前
[rdk系列之情绪识别算法上板运行]
算法
lpruoyu3 分钟前
HTTP+XML形式完成请求交互
java
7澄13 分钟前
Java Socket 网络编程实战:从基础通信到线程池优化
java·服务器·网络·网络编程·socket·多线程·客户端
2201_757830873 分钟前
反射的概念
java·开发语言
Pocker_Spades_A4 分钟前
DeepCore:大模型统一网关,Claude 免费体验与跨模型技术洞察
java·服务器·数据库
Bdygsl5 分钟前
数字图像处理总结 Day 3 —— 图像增强与运算
图像处理·算法
田里的水稻7 分钟前
spline_curve
算法·几何学