215. 数组中的第K个最大元素+17.14. 最小K个数(优先级队列)

目录

一、第K个最大元素

二、代码

三、最小K个数

四、代码


一、第K个最大元素

215. 数组中的第K个最大元素 - 力扣(LeetCode)

215. 数组中的第K个最大元素+17.14. 最小K个数(优先级队列)_第1张图片 

二、代码

class Solution {
public:
    int findKthLargest(vector& nums, int k) {
        priority_queue data(nums.begin(),nums.end());//默认建立大根堆
        while(--k)//将前k个最大的数出队列
        {
            data.pop();
        }
        return data.top();
    }
};

三、最小K个数

面试题 17.14. 最小K个数 - 力扣(LeetCode)

215. 数组中的第K个最大元素+17.14. 最小K个数(优先级队列)_第2张图片

四、代码

class Solution {
public:
    vector smallestK(vector& arr, int k) {
        priority_queue,greater> minHeap;//建小根堆
        for(int i = 0 ;iv;
        while(k--)
        {
            v.push_back(minHeap.top());
            minHeap.pop();
        }
        return v;
    }
};

你可能感兴趣的:(牛客/力扣,算法,leetcode,职场和发展)