class Solution
{
public:
int findKthLargest(vector<int>& res, int k)
{
priority_queue<int, vector<int>, greater<int>> smallHeap;
for (auto& i : res) {
if (smallHeap.size() < k)
{
smallHeap.push(i);
}
else {
if (smallHeap.top() < i)
{
smallHeap.pop();
smallHeap.push(i);
}
}
}
return smallHeap.top();
}
};
此处需要用到priority_queue,要熟悉该函数的语法。可以选择排序方式,是从大到小还是从小到大排序。当方式按照从小到大排序时,也就greater,top函数返回的是K个里面的最小值。
priority_queue<int, vector<int>, greater<int> >jp;
jp.push(10);
jp.push(1);
jp.push(2);
cout << jp.top() << endl;
输出:1