最小的k个数
2015-09-18 10:51
134 查看
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
[code]typedef multiset<int, greater<int> > intSet; typedef multiset<int, greater<int> >::iterator setIterator; class Solution { public: vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { vector<int> res; intSet tmp; tmp.clear(); if (input.size() < k || k < 1) return res; vector<int>::const_iterator iter = input.begin(); for (; iter < input.end(); iter++) { if (tmp.size() < k) { tmp.insert(*iter); } else { setIterator iterGreatest= tmp.begin(); if (*(tmp.begin()) > *iter) { tmp.erase(iterGreatest); tmp.insert(*iter); } } } setIterator iterSet = tmp.begin(); vector<int>::iterator iterV = res.begin(); for (; iterSet !=tmp.end(); iterSet++) { iterV = res.insert(iterV,*iterSet); } return res; }
相关文章推荐
- android studio 1.32版本 new module窗口看不全的bug
- 小议:ADFS的Token-Signing Certificate不被信任的解决方案
- HDU 5438 Ponds (拓扑排序+DFS)2015 ACM/ICPC Asia Regional Changchun Online
- 计算机中的字符编码详解
- javascript命名规范
- Mongodb怎样将查询结果放到变量里,并打印出来
- ospf中的DR和BDR
- iOS 一个控件无法显示出来的原因
- MATLAB中的eval里的单引号如何输出
- TCP通信的建立断开和状态转移
- 升级Xcode7-directory not found for option
- 《数学之美》之谈谈搜索引擎反作弊与权威性问题
- Android 下eclipse中的一些设置
- http://segmentfault.com/a/1190000000683599神器——Chrome开发者工具(一)
- 有待整理
- flex graphiclar symbol的不同比例尺切换
- BufferedInputStream学习笔记
- GridView使用学习总结
- Axis2创建WebService实例
- 粒子特效相关