【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()
相关推荐
NE_STOP7 分钟前
SpringBoot-shiro-jwt-dubbo-redis分布式统一权限系统(完结)
java
m0_603888719 分钟前
More Images, More Problems A Controlled Analysis of VLM Failure Modes
人工智能·算法·机器学习·ai·论文速览
zfj32112 分钟前
java函数式接口 @FunctionalInterface用法
java·函数·function
恶魔泡泡糖16 分钟前
51单片机矩阵按键
c语言·算法·矩阵·51单片机
叶子20242217 分钟前
电力系统分析---对称分量法
算法
TracyCoder12318 分钟前
并发编程(二):Java原子类(Atomic Classes)全解析
java·原子类·atomic
野犬寒鸦28 分钟前
从零起步学习MySQL || 第十六章:MySQL 分库分表的考量策略
java·服务器·数据库·后端·mysql
木风小助理39 分钟前
JavaAtomicInteger底层实现深度解析
java
BD_Marathon1 小时前
搭建MyBatis框架之创建MyBatis的映射文件(五)
java·数据库·mybatis
一只叫煤球的猫1 小时前
为什么Java里面,Service 层不直接返回 Result 对象?
java·spring boot·面试