【LeetCode: 215. 数组中的第K个最大元素 + 堆】

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述
在这里插入图片描述

🚩 题目链接

⛲ 题目描述

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。

请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

示例 1:

输入: [3,2,1,5,6,4], k = 2
输出: 5
示例 2:

输入: [3,2,3,1,2,4,5,5,6], k = 4
输出: 4

提示:

1 <= k <= nums.length <= 105
-104 <= nums[i] <= 104

🌟 求解思路&实现代码&运行结果


⚡ 堆

🥦 求解思路
  1. 我们先初始化一个大小为k的小根堆,然后从nums[k+1]开始与堆顶元素比较,如果nums[i] > heap.peek(),则将当前堆顶元素出堆,并将nums[i]入堆,遍历结束后,返回此时堆顶的元素就是最终答案ans。
  2. 有了基本的思路,接下来我们就来通过代码来实现一下。
🥦 实现代码
class Solution {
   
    public int findKthLargest(int[] nums, int k) {
   
        PriorityQueue<Integer> heap = new PriorityQueue<>();
        for (int i = 0; i < k; i++) {
   
            heap.add(nums[i]);
        }
        for (int i = k; i < nums.length; i++) {
   
            if (nums[i] > heap.peek()) {
   
                heap.poll();
                heap.add(nums[i]);
            }
        }
        return heap.peek();
    }
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

相关推荐

  1. 215数组K元素

    2024-01-20 08:22:04       52 阅读
  2. LeetCode热题100】【数组K元素

    2024-01-20 08:22:04       45 阅读
  3. leetcode-215-数组K元素

    2024-01-20 08:22:04       45 阅读
  4. LeetCode215. 数组K元素

    2024-01-20 08:22:04       37 阅读
  5. LeetCode-热题100:215. 数组K元素

    2024-01-20 08:22:04       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-20 08:22:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-20 08:22:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-20 08:22:04       82 阅读
  4. Python语言-面向对象

    2024-01-20 08:22:04       91 阅读

热门阅读

  1. 自己配置vue项目

    2024-01-20 08:22:04       52 阅读
  2. Spring AOP学习

    2024-01-20 08:22:04       38 阅读
  3. springboot如何创建全局线程池

    2024-01-20 08:22:04       53 阅读
  4. python入门,文件的编码,读取,写入,追加

    2024-01-20 08:22:04       60 阅读
  5. django 中group by 以及sum count

    2024-01-20 08:22:04       57 阅读
  6. Webpack5入门到原理13:开发服务器&自动化

    2024-01-20 08:22:04       59 阅读
  7. Linux 常用命令分享与示例

    2024-01-20 08:22:04       34 阅读
  8. 解决更新Xcode 15.2后,下载 iOS_17 Simulator失败

    2024-01-20 08:22:04       55 阅读
  9. Apache Flink 1.15正式发布

    2024-01-20 08:22:04       48 阅读
  10. 【LeetCode2744】最大字符串配对数目

    2024-01-20 08:22:04       60 阅读
  11. 获取mac地址,内网ip,当前ip位置信息

    2024-01-20 08:22:04       44 阅读