题目大意
给定一个数组,求它的第K大的元素。
分析
使用堆、二叉排序树、快排之类的都可以,我直接用了C++ STL自带的priority_queue代替手写堆了。
代码
int findKthLargest(vector<int>& nums, int k) {
priority_queue<int,vector<int>,less<int>> heap; //这里如果用greater<int>就是小的元素优先
for(int i = 0; i < nums.size(); i++) {
heap.push(nums[i]);
}
for(int i = 0; i < k - 1; i++) {
heap.pop();
}
return heap.top();
}