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

【LeetCode】【数组中的第K个最大元素】

215. 数组中的第K个最大元素

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

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

你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。

示例 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

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/kth-largest-element-in-an-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

这里我们可以直接构建一个大根堆,然后pop K-1次,得到第K大的数

class Solution {
public:
    int findKthLargest(vector<int>& nums, int k) {
        //用迭代器区间去构造
        //相当于是一个建大堆的过程--O(N)
        //如果N非常大的话,可以键一个k个数的小堆
        priority_queue<int> maxHeap(nums.begin(),nums.end());
        //O(logN*k)
        while(--k)
        {
            maxHeap.pop();
        }
        return maxHeap.top();
    }
};

相关文章:

  • MySQL数据库引擎
  • 实时即未来,车联网项目之将数据落地到文件系统和数据库【三】
  • 非零基础自学Java (老师:韩顺平) 第23章 反射(reflection) 23.5 哪些类型 有 Class 对象
  • 一文精通数据库操作--mysql(25分钟)
  • 地理信息系统:绪论重点基础知识
  • deeplab v3论文精读
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • MSOX3052A是德混合信号示波器500MHz
  • python字符串拼接
  • 边缘计算:基于tflite实现安卓边缘端在线训练on device training(端侧训练)万字长文详解
  • Vue计算属性computed和监听属性watch的区别
  • Spring 单例注入其它 scope 的四种解决方法 @Scope 源码解读
  • FastAPI简介与快速体验
  • 《微信小程序案例9》小程序登录流程
  • 【Python初级人工智能精讲】用Paddlehub给一段没有标点符号的文字加上合适的标点符号
  • “大数据应用场景”之隔壁老王(连载四)
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 2017-08-04 前端日报
  • conda常用的命令
  • css属性的继承、初识值、计算值、当前值、应用值
  • Docker: 容器互访的三种方式
  • isset在php5.6-和php7.0+的一些差异
  • Java-详解HashMap
  • Linux各目录及每个目录的详细介绍
  • maya建模与骨骼动画快速实现人工鱼
  • Spring核心 Bean的高级装配
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 原生js练习题---第五课
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #Linux(权限管理)
  • #Z0458. 树的中心2
  • (1)(1.13) SiK无线电高级配置(六)
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (2)MFC+openGL单文档框架glFrame
  • (23)Linux的软硬连接
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (Python第六天)文件处理
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转)用.Net的File控件上传文件的解决方案
  • .NET CLR基本术语
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .pop ----remove 删除
  • @transaction 提交事务_【读源码】剖析TCCTransaction事务提交实现细节
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • []C/C++读取串口接收到的数据程序
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [Android]RecyclerView添加HeaderView出现宽度问题