2016网易春季实习生招聘编程题-求第K大元素
来源:互联网 发布:功能薄膜材料知乎 编辑:程序博客网 时间:2024/04/27 15:31
题目如下:
有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。
给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。
测试样例:
[1,3,5,2,2],5,3
返回:2用了分治法来写了如下代码:
#include <iostream>#include <vector>using namespace std;int solve(vector<int> v, int n, int* a){vector<int> left;vector<int> middle;vector<int> right;int m = v[0];for (int t:v){if (t>m){left.push_back(t);}else if (t==m){middle.push_back(t);}else if (t<m){right.push_back(t);}}if (left.size() >= *a){return solve(left, left.size(), a);} else if (*a>left.size() + middle.size()){*a = *a - left.size() - middle.size();return solve(right, right.size(), a);} else if ((left.size()<*a)&&(*a<=left.size()+middle.size())){return m;}}int main(void){int a = 5;vector<int> v = { 1, 3, 5, 2, 2 };int s = solve(v, v.size(), &a);cout << s << endl;return 0;}如有问题,请各路大神指教。谢谢!
0 0
- 2016网易春季实习生招聘编程题-求第K大元素
- 网易实习生笔试试题 求第K大的数
- 网易16年春季实习生招聘的一道算法题
- 网易2016机器翻译实习生招聘笔试编程题
- 2013年网易春季实习生招聘笔试题目
- 2011淘宝春季实习生招聘笔试题
- 百度2015春季实习生招聘附加题
- 网易16年研发实习生笔试题 - 寻找第K大
- 网易2016实习生编程题
- 2016网易春季校园招聘产品策划笔试
- STL求第k大的元素
- 网易2016实习研发工程师编程题——寻找第K大
- 春季实习生校园招聘总结
- 网易2017实习生编程题—消除重复元素
- 网易笔试题 寻找第K大
- 阿里巴巴-高德地图-2016春季实习生招聘
- 百度2015春季实习生招聘附加题_01排序
- [百度2015春季实习生招聘附加题] 01排序
- Android之Intent深入
- caffe中cifar10的full_train模型出现nan的解决办法
- Spring学习——(五)Spring中数据源的配置
- 码农小汪-剑指Offer之20-从上往下打印二叉树
- bitnami 3.0 装的 redmine 附件名有中文,下载不了
- 2016网易春季实习生招聘编程题-求第K大元素
- 大数快速运算法则
- c++ primer —— 练习 14.2
- Structs
- Adb connection Error:远程主机强迫关闭了一个现有的连接。
- ++与--(程序中不经意间出的错误记录)
- VC 调试中一些常见的错误信息及解决方法
- 协方差与皮尔逊系数详解
- C# kinect v2学习笔记(四) 深度图像