此问题可转化为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();
}
};

最新文章

  1. python string intern
  2. MySQL的数据库无法插入中文是怎么回事?
  3. Some Skills in Visual Studio
  4. node下新建工程
  5. nyoj 105 九的余数
  6. my_vimrc
  7. C语言中typedef
  8. hexo博客部署到github无法上传的问题
  9. IOS的UITextField,UIButton,UIWebView它描述的一些属性和IOS提示图像资源
  10. Node.js学习 - Event Loop
  11. 201521123022 《Java程序设计》 第8周学习总结
  12. Linux Shell编程参考大全
  13. 异常处理--logging模块
  14. js 用touch事件实现简单tap
  15. JavaScript字符串相关
  16. Pandas字符串操作及实例应用
  17. Spring.Net封闭业务类为WebService注意点和问题
  18. 004_加速国内docker源下载速度
  19. Thread类的常见问题
  20. mybatis.5.动态SQL

热门文章

  1. git ignore 如何忽略已经提交的文件修改
  2. Delphi RadioGroup 组件
  3. 标准C语言(9)
  4. A Neural Probabilistic Language Model (2003)论文要点
  5. ffmpeg函数05__vcodec_decode_video2()
  6. json dumps dump区别
  7. jar is not a valid DFS filename
  8. entity framework delete table Error 11007:
  9. HandlerAdapter解析参数过程之HandlerMethodArgumentResolver
  10. [人物存档]【AI少女】【捏脸数据】气质学生