class Solution {
public:
int findKthLargest(vector<int>& nums, int k) {
//降序
sort(nums.begin(),nums.end(),greater<int>());
return nums[k-1];
}
};
class Solution {
public:
int findKthLargest(vector<int>& nums, int k) {
sort(nums.begin(),nums.end());
return nums[nums.size()-k];
}
};
class Solution {
public:
int findKthLargest(vector<int>& nums, int k) {
priority_queue<int> maxHeap(nums.begin(),nums.end());
while(--k){
maxHeap.pop();
}
return maxHeap.top();
}
};
class Solution {
public:
int findKthLargest(vector<int>& nums, int k) {
//如果N很大,且N远大于K
//建一个K个数的小堆
priority_queue<int,vector<int>,greater<int>> minHeap(nums.begin(),nums.begin()+k);
//剩下的N-k个数依次跟堆顶数据进行比较
for(size_t i=k;i<nums.size();++i){
if(nums[i]>minHeap.top()){
minHeap.pop();
minHeap.push(nums[i]);
}
}
return minHeap.top();
}
};
leetcode:215. 数组中的第K个最大元素
最新推荐文章于 2022-12-29 23:41:40 发布