【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()
相关推荐
颜酱7 小时前
二叉树分解问题思路解题模式
javascript·后端·算法
码路飞9 小时前
GPT-5.3 Instant 终于学会好好说话了,顺手对比了下同天发布的 Gemini 3.1 Flash-Lite
java·javascript
qianpeng8979 小时前
水声匹配场定位原理及实验
算法
SimonKing9 小时前
OpenCode AI编程助手如何添加Skills,优化项目!
java·后端·程序员
Seven9711 小时前
剑指offer-80、⼆叉树中和为某⼀值的路径(二)
java
董董灿是个攻城狮20 小时前
AI视觉连载8:传统 CV 之边缘检测
算法
怒放吧德德1 天前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆1 天前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
心之语歌1 天前
基于注解+拦截器的API动态路由实现方案
java·后端
华仔啊1 天前
Stream 代码越写越难看?JDFrame 让 Java 逻辑回归优雅
java·后端