剑指offer 编程题(28):最小的K个数
来源:互联网 发布:家庭相册制作软件 编辑:程序博客网 时间:2024/06/13 00:36
题目描述
输入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; int sizein = input.size(); if(sizein <= 0 || k <= 0 || k > sizein) { return res; } sort(input.begin(),input.end()); res.assign(input.begin(),input.begin()+k); return res; }};
class Solution {public: vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { int len=input.size(); vector<int> res; if(len<=0||k>len||k<=0) return res; for(int i=0;i<k;++i) res.push_back(input[i]); make_heap(res.begin(),res.end()); //默认make_heap,最大的在开头, for(int i=k;i<len;++i) { if(res.front() > input[i]) //开头最大元素大于新来的,就弹出开头,让新来的进去 { 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; }};
class Solution { public: vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { int len=input.size(); vector<int> res; if(len<=0||k>len||k<=0) return res; for(int i=0;i<k;++i) res.push_back(input[i]); sort(res.begin(),res.end()); //默认对vector进行sort排序,最大的在末尾,从小到大 for(int i=k;i<len;++i) { if(res.back() > input[i]) //末尾是最大元素,末尾大于新来的,就弹出开头,让新来的进去 { res.pop_back(); res.push_back(input[i]); sort(res.begin(),res.end()); //重新堆排列 } } sort(res.begin(),res.end()); return res; }};
阅读全文
0 0
- 剑指offer 编程题(28):最小的K个数
- 最小的k个数(剑指offer)
- 剑指Offer—编程题30(最小的k个数)
- 剑指offer:最小的k个数
- 【剑指offer】最小的k个数
- 剑指offer-30:最小的k个数
- 剑指offer--最小的K个数
- 剑指Offer之 - 最小的k个数
- 剑指offer-30 最小的K个数
- 剑指offer之最小的k个数
- 剑指offer 30 - 最小的k个数
- 《剑指offer》最小的K个数
- 【剑指Offer】最小的K个数
- 剑指offer—最小的K个数
- 剑指Offer-30-最小的k个数
- 剑指offer:最小的K个数
- 【剑指offer】之最小的k个数
- [剑指offer:30]最小的k个数
- 【Unreal Engine 4】虚拟试衣镜
- 苹果明年推出跨平台应用,同时在 iPhone、Mac 上运行
- 使用AcDbEntity的Explode方法后分解对象的删除
- Postgresql临时表
- pat甲级1012-The Best Rank
- 剑指offer 编程题(28):最小的K个数
- PostgreSQL的约束
- <剑指offer 面试题2> 单例模式 (Java实现)
- Python--小甲鱼学习笔记--第27课:集合(set()、frozenset())
- 讲一次完整的产品迭代过程的各个阶段
- PostgreSQL角色和权限
- Android动态申请权限
- 读入读出优化
- JDBC Java数据库连接 1 2017年12月19日 22:37:42