Leetcode114: Kth Largest Element in an Array
2015-10-23 11:26
417 查看
Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.
For example,
Given
Note:
You may assume k is always valid, 1 ≤ k ≤ array's length.
Credits:
Special thanks to @mithmatt for adding this problem and creating all test cases.
O(n)解法:快速选择(QuickSelect)算法,参考耶鲁大学关于QuickSelect算法的介绍
O(nlogn)解法:排序
For example,
Given
[3,2,1,5,6,4]and k = 2, return 5.
Note:
You may assume k is always valid, 1 ≤ k ≤ array's length.
Credits:
Special thanks to @mithmatt for adding this problem and creating all test cases.
O(n)解法:快速选择(QuickSelect)算法,参考耶鲁大学关于QuickSelect算法的介绍
O(nlogn)解法:排序
class Solution { public: int findKthLargest(vector<int>& nums, int k) { int n = nums.size(); vector<int> left; vector<int> right; for(int i = 1; i < n; i++) { if(nums[i]>nums[0]) right.push_back(nums[i]); else left.push_back(nums[i]); } int m = right.size(); if(m >= k) return findKthLargest(right, k); else if(m == k-1) return nums[0]; else return findKthLargest(left, k-m-1); } };
相关文章推荐
- SDUT 2676 3-7 类的友元函数的应用
- Android开发学习笔记:用Intent调用系统中经常被用到的组件
- 面试题 一个人射箭,每次分数在0至10之间,已知射箭10次,得分是50分,编程计算总共有多少种可能?
- MongoDB数据库设计中6条重要的经验法则
- 【开发工具】linux 下NFS服务安装
- Android Parcelable接口
- 火狐Firefox总是提示AdobeFlash已过期的解决方法
- 机器学习中的特征空间
- PHP 性能分析
- 你不知道的JavaScript--Item2 浮点数精度
- Java Web 发展的理解
- cygwin-使用介绍
- sql server 删除所有 视图、存储过程
- 你不知道的JavaScript--Item2 浮点数精度
- 在网页中添加 “返回顶部”按钮
- Android] setContentView和inflater区别以及findViewById和inflater的区别
- 运行报错“Could not find a storyboard named 'Main' in bundle”
- Http头字段总结
- UITextView的使用详解
- 在ListView中嵌套EditText,EditText内容过多需要滚动的问题