最大的k个数
来源:互联网 发布:十四阿哥和四阿哥知乎 编辑:程序博客网 时间:2024/05/14 19:43
题目描述
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
class Solution {public: vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { vector<int> res; if(input.empty() || k > input.size()) return res; sort(input.begin(),input.end()); for(int i = 0; i < k; i++){ res.push_back(input[i]); } return res; }};思路2:最大堆
class Solution {public: vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { int len = input.size(); vector<int> res; if(len <= 0 || len < k || k<=0) return res; for(int i = 0; i < k; i++) res.push_back(input[i]);// 将前k个数保存到res中,然后开始调整 make_heap(res.begin(), res.end());//建立初始堆 for(int i = k; i < len; i++){ if(input[i] < res[0]){ pop_heap(res.begin(),res.end()); //从堆中删除数据 res.pop_back(); //剔除原来最大的值 res.push_back(input[i]); //压入比原来最大值小的值 push_heap(res.begin(),res.end()); //向堆中添加数据 } } //使其从小到大输出 sort_heap(res.begin(),res.end()); return res; }};
阅读全文
0 0
- 最大的k个数
- 最大的K个数
- 最大的k个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的k个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的k个数
- 寻找最大的K个数
- 寻找最大的K个数
- 旋转链表-LintCode
- Matlab计算机视觉/图像处理工具箱推荐
- Qt开发之基础
- 2017年多校联训8 部分题解
- 4.Eclipse的安装和使用
- 最大的k个数
- MySQL示例employees数据库
- java TreeMap
- Java远程服务调用协议对比
- 剑指offer:数组中只出现一次的数字
- 重装 11G(11.2.0.4) SDO组件
- 解一类A^x=B(mod C)(C是质数)的方程 (BSGS)
- GPRS项目小结
- Java ArrayList