leetcode做题笔记215. 数组中的第K个最大元素

编程入门 行业动态 更新时间:2024-10-08 22:55:42

leetcode<a href=https://www.elefans.com/category/jswz/34/1767183.html style=做题笔记215. 数组中的第K个最大元素"/>

leetcode做题笔记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

思路一:优先队列

c++解法

class Solution {
public:int findKthLargest(vector<int>& nums, int k) {if (k <= 0 || k > nums.size() || nums.empty()) {return 0;}priority_queue<int, vector<int>, greater<int>> que;for (int i = 0; i < nums.size(); i++) {que.push(nums[i]);if (que.size() == k+1) {que.pop();}}return que.top();}
};

分析: 

本题要求第k大的元素,利用优先队列可以不断维护排序好的数组,最后直接返回第k大的元素

总结:

本题考察对优先队列的利用,这里采用编写好的优先队列方法,将数组内数直接放入队列中进行排序

更多推荐

leetcode做题笔记215. 数组中的第K个最大元素

本文发布于:2023-11-16 11:18:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1620486.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:做题   组中   元素   笔记   leetcode

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!