leetcode 215 第K个最大的元素
2024-08-31 21:19:01
此问题可转化为Top K问题进行考虑,当用小顶堆选出K个最大值时,堆顶的元素即为第k大的元素
class Solution {
public:
int findKthLargest(vector<int>& nums, int k) {
priority_queue<int,vector<int>,greater<int> >q;//小顶堆
//priority_queue<int,vector<int>,less<int> >q;大顶堆
int len=nums.size();
for(int i=;i<len;i++){
if(i<k)
q.push(nums[i]);
else{
if(q.top()<nums[i]){
q.pop();
q.push(nums[i]);
}
}
}
return q.top();
}
};
自己重载比较运算符:
/**
建立一个小顶堆,每次出现新元素大于堆顶元素则替换堆顶元素
**/
class Solution {
public:
int findKthLargest(vector<int>& nums, int k) {
vector<int> topk;
struct cmp{
bool operator()(int a,int b){return a>b;}//小顶堆
};
priority_queue<int,vector<int>,cmp> q;
for(int num:nums){
if(q.size()<k){
q.push(num);continue;
}
if(num>q.top()){
q.pop();q.push(num);
}
}
return q.top();
}
};
最新文章
- python string intern
- MySQL的数据库无法插入中文是怎么回事?
- Some Skills in Visual Studio
- node下新建工程
- nyoj 105 九的余数
- my_vimrc
- C语言中typedef
- hexo博客部署到github无法上传的问题
- IOS的UITextField,UIButton,UIWebView它描述的一些属性和IOS提示图像资源
- Node.js学习 - Event Loop
- 201521123022 《Java程序设计》 第8周学习总结
- Linux Shell编程参考大全
- 异常处理--logging模块
- js 用touch事件实现简单tap
- JavaScript字符串相关
- Pandas字符串操作及实例应用
- Spring.Net封闭业务类为WebService注意点和问题
- 004_加速国内docker源下载速度
- Thread类的常见问题
- mybatis.5.动态SQL
热门文章
- git ignore 如何忽略已经提交的文件修改
- Delphi RadioGroup 组件
- 标准C语言(9)
- A Neural Probabilistic Language Model (2003)论文要点
- ffmpeg函数05__vcodec_decode_video2()
- json dumps dump区别
- jar is not a valid DFS filename
- entity framework delete table Error 11007:
- HandlerAdapter解析参数过程之HandlerMethodArgumentResolver
- [人物存档]【AI少女】【捏脸数据】气质学生