目录
一、第K个最大元素
二、代码
三、最小K个数
四、代码
一、第K个最大元素
215. 数组中的第K个最大元素 - 力扣(LeetCode)
二、代码
class Solution {
public:
int findKthLargest(vector<int>& nums, int k) {
priority_queue data(nums.begin(),nums.end());//默认建立大根堆
while(--k)//将前k个最大的数出队列
{
data.pop();
}
return data.top();
}
};
三、最小K个数
面试题 17.14. 最小K个数 - 力扣(LeetCode)
四、代码
class Solution {
public:
vector<int> smallestK(vector<int>& arr, int k) {
priority_queue<int,vector<int>,greater<int>> minHeap;//建小根堆
for(int i = 0 ;i<arr.size();i++)
{
minHeap.push(arr[i]);
}
vector<int>v;
while(k--)
{
v.push_back(minHeap.top());
minHeap.pop();
}
return v;
}
};