Kth Largest Element in an Array
Desicription
Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.
Example 1:
代码语言:javascript复制Input: [3,2,1,5,6,4] and k = 2
Output: 5
Example 2:
代码语言:javascript复制Input: [3,2,3,1,2,4,5,5,6] and k = 4
Output: 4
Note:
You may assume k is always valid, 1 ≤ k ≤ array’s length.
Solution
代码语言:javascript复制class Solution {
public:
int findKthLargest(vector<int>& nums, int k) {
auto compare = [](int a, int b) {return a > b;};
priority_queue<int, vector<int>, decltype(compare)> pq(compare);
for(const auto& num : nums) {
pq.push(num);
while(pq.size() > k) {
pq.pop();
}
}
return pq.top();
}
};