[大根堆]面试题40. 最小的k个数(easy)

编程入门 行业动态 更新时间:2024-10-27 07:28:06

[大根堆]面试题40. 最小的k<a href=https://www.elefans.com/category/jswz/34/1769671.html style=个数(easy)"/>

[大根堆]面试题40. 最小的k个数(easy)

题目:

题解:

  • 大根堆模板题,维持一个大小为 k 的大根堆就可得到数组前 k 个最小数了。

代码如下:

class Solution {
public:vector<int> getLeastNumbers(vector<int>& arr, int k) {if(!k)return {};priority_queue<int> heap;//维持大小为k的大根堆for(int a:arr){if(heap.size()<k)heap.push(a);else{if(heap.top()<=a)continue;//元素比堆顶元素值大,不需要添加到堆中else{heap.pop();heap.push(a);}}}vector<int> res;while(!heap.empty()){res.push_back(heap.top());heap.pop();}return res;}
};

更多推荐

[大根堆]面试题40. 最小的k个数(easy)

本文发布于:2023-07-28 18:55:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1280252.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:个数   最小   面试题   大根堆   easy

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!