当前位置: 首页 > news >正文

[LeetCode力扣hot100]-堆

 

​​​​​​215. 数组中的第K个最大元素 - 力扣(LeetCode)**高频

典型的Top K问题,(第一遍做是快排+输出,有点太取巧了肯定不行,时间复杂度也不符合O(n))

此题可用小顶堆,小顶堆的特点是父节点<子节点,所以最后根节点是最小的节点,只需要维持一个规模大小为k的小顶堆即可。最后的根节点就是整个数组的第K大的元素。

当小顶堆满(大于等于)的时候。遍历插入时,插入的数据和堆顶(即根节点)对比即可。

class Solution {
public:
    int findKthLargest(vector<int>& nums, int k) {
        priority_queue<int,vector<int>,greater<int>> minHeap;//小顶堆
        for(int i=0;i<nums.size();i++){
            
            if(minHeap.size()>=k){
                if(minHeap.top()<nums[i]){
                    minHeap.pop();
                    minHeap.push(nums[i]);
                }
            }else{
                 minHeap.push(nums[i]);
            }
        }

        return minHeap.top();
    }
};

347. 前 K 个高频元素 - 力扣(LeetCode)

 

相关文章:

  • 笔记本电脑外接固态移动硬盘可以用于深度学习吗
  • echarts的geo3d绘制地图添加定位点和点击事件,发现当有一个散点的时候无法点击
  • 研一控制工程转码,选择后端开发还是嵌入式?嵌软开发需要懂硬件吗?
  • Deepseek 使用攻略
  • 在 IntelliJ IDEA 中使用 JUnit 进行单元测试
  • 【CXX】5.4 属性
  • 国产编辑器EverEdit - 安装扩展功能的方式
  • 当AI开始“思考“:拆解大模型训练与推理的秘密(以DeepSeek为例)
  • Java ThreadLocal
  • LINUX本地磁盘DISK空间扩容
  • SpringBoot 集成nacos,实现动态配置更新、docker安装nacos
  • 排序算法-冒泡排序
  • 计算机毕设-基于springboot的物业管理系统的设计与实现(附源码+lw+ppt+开题报告)
  • GPT-4 Turbo的重大升级与深远影响
  • Zabbix 安装部署
  • Ruby 安装 - Linux
  • 在 Ubuntu 上安装和切换多个 GCC 版本
  • 在Linux系统上集成OpenSlide与SpringBoot
  • HTTPS安全通信协议原理
  • Pytest安装和介绍
  • 一个备案可以做几个网站吗/seo博客模板
  • 安卓app制作工具/石家庄百度推广优化排名
  • wordpress手机端显示/许昌正规网站优化公司
  • 电脑做h5比较好的网站/市场调研报告范文
  • 教育网站 模板/四川百度推广和seo优化
  • 南开网站建设/竞价出价怎么出