【LeetCode75】第四十九题 数组中的第K个最大元素

目录

题目:

示例:

分析:

代码:


题目:

【LeetCode75】第四十九题 数组中的第K个最大元素_第1张图片

示例:

【LeetCode75】第四十九题 数组中的第K个最大元素_第2张图片

分析:

题目很简单,就是给我们一个数组,让我们返回第K大的元素。

那么很直观的一个做法就是我们直接对数组进行降序排序,索引为k-1的元素就是整个数组里第k大的元素了。

另外一个就是使用大顶堆,C++里有内置,是叫priority_queue优先队列,我们只需要往优先队列里塞进元素,那么这个容器底层会自动对元素进行排序,我们从大顶堆里取的数永远是队列里最大的数,那么我们只需要取数,再将大顶堆的堆顶元素移出,如此反复k-1次,那么最后取出的数就是数组里第K大的元素了。

至于大顶堆该怎么实现,我的看法是我们普通人只需要会使用内置的容器就可以了,真的要自己手写一个大顶堆的话还是挺麻烦的。

代码:

class Solution {
public:
    int findKthLargest(vector& nums, int k) {
        //使用C++内置优先队列 大顶堆
        priority_queuepq(nums.begin(),nums.end());
        for(int i=0;ib;
        });
        return nums[k-1];
    }
};

你可能感兴趣的:(LeetCode75题解,算法,leetcode,数据结构,c++)