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

【LeetCode75】第四十九题 数组中的第K个最大元素

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

题目很简单,就是给我们一个数组,让我们返回第K大的元素。

那么很直观的一个做法就是我们直接对数组进行降序排序,索引为k-1的元素就是整个数组里第k大的元素了。

另外一个就是使用大顶堆,C++里有内置,是叫priority_queue优先队列,我们只需要往优先队列里塞进元素,那么这个容器底层会自动对元素进行排序,我们从大顶堆里取的数永远是队列里最大的数,那么我们只需要取数,再将大顶堆的堆顶元素移出,如此反复k-1次,那么最后取出的数就是数组里第K大的元素了。

至于大顶堆该怎么实现,我的看法是我们普通人只需要会使用内置的容器就可以了,真的要自己手写一个大顶堆的话还是挺麻烦的。

代码:

class Solution {
public:int findKthLargest(vector<int>& nums, int k) {//使用C++内置优先队列 大顶堆priority_queue<int>pq(nums.begin(),nums.end());for(int i=0;i<k-1;i++){pq.pop();}return pq.top();//从大到小排序后返回第K大的元素sort(nums.begin(),nums.end(),[](int a,int b){return a>b;});return nums[k-1];}
};

http://www.lryc.cn/news/157778.html

相关文章:

  • 嵌入式面试笔试刷题(day14)
  • 好用免费的Chat GPT(亲测有用)
  • SpringBoot项目--电脑商城【上传头像】
  • 优化SOCKS5的方法
  • 使用 HelpLook Chatbot,让AI聊天机器人变成销售经理
  • MT9700 80mΩ,可调快速响应限流配电开关芯片
  • RabbitMQ之延迟队列
  • k8s部署手册-v06
  • Qt 5.15集成Crypto++ 8.7.0(MSVC 2019)笔记
  • LeetCode——贪心篇(一)
  • 2023高教社杯 国赛数学建模C题思路 - 蔬菜类商品的自动定价与补货决策
  • 【理解线性代数】(四)线性运算的推广与矩阵基础
  • C# 什么是继承和派生
  • 无涯教程-JavaScript - HEX2BIN函数
  • 前端面试0906
  • OceanBase社区版4.x核心技术解密
  • 快速安装k8s
  • [FFmpeg] 常用ffmpeg命令
  • 代码随想录训练营第五十七天|647. 回文子串、516.最长回文子序列
  • 对线程池设置做压测
  • 【网络通信 -- WebRTC】项目实战记录 -- mediasoup android 适配 webrtc m94
  • 【力扣周赛】第 357 场周赛(⭐反悔贪心)
  • css重置
  • tcpdump相关
  • MFC新建内部消息
  • linux查找目录
  • 机器学习:可解释学习
  • UE5- c++ websocket里实现调用player里的方法
  • 线性代数的学习和整理18:什么是维度,什么是秩?秩的各种定理秩的计算 (计算部分未完成)
  • Centos 6.5 升级到Centos7指导手册