【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()
相关推荐
SYKMI28 分钟前
@JsonFormat时区问题
java·前端·数据库
小猿_0035 分钟前
C语言指针进阶
c语言·数据结构·算法
摆烂仙君2 小时前
小米2025年校招笔试真题手撕(二)
算法
z人间防沉迷k4 小时前
后端开发概念
java·后端
caihuayuan54 小时前
Vue3响应式数据: 深入分析Ref与Reactive
java·大数据·spring boot·后端·课程设计
CodeWithMe5 小时前
【C/C++】线程状态以及转换
java·c语言·c++
苹果酱05675 小时前
Java设计模式:探索编程背后的哲学
java·vue.js·spring boot·mysql·课程设计
biubiubiu07066 小时前
windows中JDK切换版本
java·开发语言
xin007hoyo7 小时前
算法笔记·数学·最大公约数
笔记·算法