class Solution {
public:
int findKthLargest(vector<int>& nums, int k) {
//思路:二叉堆,最小堆
// 维护一个K大小的最小堆;
//堆中元素个数小于K时候,新元素直接进堆。
// 否则,堆顶元素小于新元素,弹出堆顶,新元素进入。
//例子: K=2,则最小堆就是2个元素,堆顶为第二大元素,堆底为最大元素.
std::priority_queue<int ,std::vector<int>, std::greater<int>> Q;//构建最小堆
for(int i = 0; i < nums.size(); i ++)
{
if(Q.size() < k)
{
Q.push(nums[i]);
}
else if (Q.top() < nums[i])
{
Q.pop();
Q.push(nums[i]);
}
}
return Q.top();
}
};
215. 数组中的第K个最大元素C++
猜你喜欢
转载自blog.csdn.net/a15929748502/article/details/88538324
今日推荐
周排行