Kth Largest Element in an Array:
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:
Input: [3,2,1,5,6,4] and k = 2
Output: 5
Example 2:
Input: [3,2,3,1,2,4,5,5,6] and k = 4
Output: 4
Solution(self):
#include <iostream>
#include <vector>
using namespace std;
class Solution {
public:
int findKthLargest(vector<int>& nums, int k) {
sort(nums.begin(), nums.end());
int res = 0;
int n = nums.size();
res = nums[n - k];
return res;
}
};
Solution(internet):
class Solution {
public:
int findKthLargest(vector<int>& nums, int k) {
priority_queue<int, vector<int>, greater<int>> pq;
for(int e: nums)
if(pq.size() != k)
pq.push(e);
else if(e > pq.top()){
pq.pop();
pq.push(e);
}
return pq.top();
}
};