其他分享
首页 > 其他分享> > leetcode215. 数组中的第K个最大元素

leetcode215. 数组中的第K个最大元素

作者:互联网

这题和剑指 Offer 40. 最小的k个数思路基本相同。

思路:用一个小顶堆,筛选出k个最大的元素,那么在头的那个就是和第k大的元素了

class Solution {
public:
    int findKthLargest(vector<int>& nums, int k) {
        // 小顶堆
        priority_queue<int,vector<int>,greater<int>> pq;
        // priority_queue<int,vector<int>,less<int>> pq2;
        for (int i = 0; i < k; ++i) {
            pq.push(nums[i]);
        }
        for (int i = k; i <nums.size() ; ++i) {
            if(nums[i]>pq.top()){
                pq.pop();
                pq.push(nums[i]);
            }
        }
        return pq.top();
    }
};

标签:pq,nums,int,top,元素,priority,数组,小顶,leetcode215
来源: https://blog.csdn.net/qq_37350725/article/details/113794503