leetcode-215 数组中的第K个最大元素
生活随笔
收集整理的這篇文章主要介紹了
leetcode-215 数组中的第K个最大元素
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在未排序的數(shù)組中找到第 k 個(gè)最大的元素。請(qǐng)注意,你需要找的是數(shù)組排序后的第 k 個(gè)最大的元素,而不是第 k 個(gè)不同的元素。
示例 1:
輸入: [3,2,1,5,6,4] 和 k = 2
輸出: 5
該題比較簡(jiǎn)潔的解法,我們使用堆來(lái)完成
最小堆:即堆頂為所有元素的最小值
我們將堆的大小限制為k,則堆頂即為所有元素中第k大的元素
實(shí)現(xiàn)如下:
int findKthLargest(vector<int>& nums, int k) {//C++使用優(yōu)先級(jí)隊(duì)列實(shí)現(xiàn)堆//如果是greater<int>,則最小堆//如果是less<int>,則最大堆priority_queue<int , vector<int>, greater<int>> Q;for (int i = 0;i < nums.size(); ++i) {if(k > 0) {Q.push(nums[i]);k--;} else {if (nums[i] > Q.top()) {Q.pop();Q.push(nums[i]);}}}return Q.top();
}
總結(jié)
以上是生活随笔為你收集整理的leetcode-215 数组中的第K个最大元素的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: leetcode-155 最小栈
- 下一篇: 大家对莱昂纳多,德普,小罗伯特唐尼,皮特