描述
有一个整数数组,请你根据快速排序的思路,找出数组中第 k 大的数。
给定一个整数数组 a ,同时给定它的大小n和要找的 k ,请返回第 k 大的数(包括重复的元素,不用去重),保证答案存在。
class Solution {
public:
int findKth(vector<int> a, int n, int K) {
priority_queue<int, vector<int>, greater<int> > q;//小根堆
for (int i : a)
{
if (q.size()<K)//维持大小为k的小根堆
q.push(i);
else
{
if (q.top()<i)
{
q.pop();
q.push(i);
}
}
}
return q.top();
}
};