剑指offer——面试题30:最小的k个数
来源:互联网 发布:手机游戏录像软件 编辑:程序博客网 时间:2024/06/08 02:01
void GetLeastNumbers_Solution1(int* input, int n, int* output, int k){ if(input == NULL || output == NULL || k > n || n <= 0 || k <= 0) return; int start = 0; int end = n - 1; int index = Partition(input, n, start, end); while(index != k - 1) { if(index > k - 1) { end = index - 1; index = Partition(input, n, start, end); } else { start = index + 1; index = Partition(input, n, start, end); } } for(int i = 0; i < k; ++i) output[i] = input[i];}
typedef multiset<int, greater<int> > intSet;typedef multiset<int, greater<int> >::iterator setIterator;void GetLeastNumbers_Solution2(const vector<int>& data, intSet& leastNumbers, int k){ leastNumbers.clear(); if(k < 1 || data.size() < k) return; vector<int>::const_iterator iter = data.begin(); for(; iter != data.end(); ++ iter) { if((leastNumbers.size()) < k) leastNumbers.insert(*iter); else { setIterator iterGreatest = leastNumbers.begin(); if(*iter < *(leastNumbers.begin())) { leastNumbers.erase(iterGreatest); leastNumbers.insert(*iter); } } }}
0 0
- 剑指offer 面试题30—最小的k个数
- 剑指offer面试题30最小的k个数
- [剑指offer][面试题30]最小的k个数
- 【剑指offer】面试题30:最小的K个数
- 剑指Offer:面试题30 最小的k个数
- 剑指offer:面试题30,求最小的K个数
- 剑指offer 面试题30 最小的K个数
- 【剑指Offer学习】【面试题30:最小的k个数】
- 剑指offer-面试题30:最小的K个数
- 剑指offer之面试题30:最小的k个数
- 剑指offer之面试题30最小的k个数
- 剑指Offer----面试题30:最小的K个数
- 剑指offer-----面试题30(最小的k个数)
- 剑指offer面试题30:最小的K个数
- 剑指offer--面试题30:最小的K个数
- 剑指Offer之面试题30:最小的K个数
- 剑指offer-面试题30-最小的k个数
- 剑指Offer系列-面试题30:最小的K个数
- asp.new 验证码
- HDU 1166(树状数组 单点更新 区域求值)
- 最大数与最小数调换位置
- Angular2(五)--router
- 软件工程——编码阶段
- 剑指offer——面试题30:最小的k个数
- SpringMVC源码分析(二)-URL映射的注册
- 教程之ucgui_向按钮发送一个按键消息的程序追踪
- 计算N天之后的日期函数
- 图解几个与Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN
- 用css3实现各种图标效果
- [Hive]Hive安装
- MongoDB NOSQL数据库常见的面试题汇总
- pwd命令