【剑指Offer】最小的k个数
发布日期:2022-02-10 08:55:15
浏览次数:31
分类:技术文章
本文共 677 字,大约阅读时间需要 2 分钟。
题目
输入整数数组 arr
,找出其中最小的 k
个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。
思路
最直接的肯定是sort+前k位输出(貌似这样在力扣上还省时一点)
研究了一下书上的方法,用一个STL容器完成,维持一个容量为k的堆,保证这个堆中的数据都是最小的。
代码
class Solution {public: vector getLeastNumbers(vector & arr, int k) { multiset> minset; for(int i = 0;i < arr.size();i++){ if(minset.size() < k){ minset.insert(arr[i]); }else{ multiset >::iterator ite; ite = minset.begin(); if(arr[i] < *ite){ minset.erase(ite); minset.insert(arr[i]); } } } vector vec; vec.assign(minset.begin(), minset.end()); return vec; }};
转载地址:https://blog.csdn.net/hanmin822/article/details/105765676 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年03月28日 08时05分18秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
匿名函数lambda
2019-04-26
git上传代码到远程仓库的命令行步骤
2019-04-26
Android解决网络加载大图片OOM的问题
2019-04-26
设计模式之单例模式
2019-04-26
JAVA的引用类型
2019-04-26
Android 解决Dialog导致软键盘无法隐藏的问题
2019-04-26
初学Flutter--Assets资源文件
2019-04-26
Unity3d学习笔记
2019-04-26
自定义View简单实现图片的手指移动和两指缩放
2019-04-26
Android自定义View模拟并实现3D柱状图
2019-04-26
Android Zxing二维码自定义界面(继承Capture类)
2019-04-26
Android 自定义View实现动画形式加载环形图
2019-04-26
Android 自定义View实现炮弹射击小游戏
2019-04-26
mysql设置不区分大小写
2019-04-26
linux下安装redis
2019-04-26
linux安装nginx(centos/Ubuntu/debian)
2019-04-26
linux下安装artemis
2019-04-26
mysql查询某属性值出现次数大于1
2019-04-26
mysql处理跨连接(dblink)
2019-04-26
mysql游标循环表与存储过程传参
2019-04-26