Kth Largest Element in an Array
来源:互联网 发布:淘宝怎样申请退款 编辑:程序博客网 时间:2024/05/22 11:47
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 [3,2,1,5,6,4]
and k = 2, return 5.
Note:
You may assume k is always valid, 1 ≤ k ≤ array's length.
利用分治算法,随机取数组中一个元素v,将数组分为三部分:小于v的数,等于v的数,大于v的数.通过比较k于这些子集所含元素数大小的关系,确定第k大数在哪个子集中.对该子集递归的分治.
class Solution {public: int findKthLargest(vector<int>& nums, int k) {int r= rand()%nums.size();int v=nums[r]; vector<int> Sl,Sv,Sr; for (int i = 0; i < nums.size(); ++i) { if (nums[i] > v) Sl.push_back(nums[i]); if (nums[i] == v) Sv.push_back(nums[i]); if (nums[i] < v) Sr.push_back(nums[i]); } if (k <= Sl.size()) return findKthLargest(Sl,k); else if (k> Sl.size() && k <= Sl.size()+Sv.size()) return v; else return findKthLargest(Sr,k-Sl.size()-Sv.size()); }};
阅读全文
0 0
- Kth Largest Element in an Array
- Leetcode Kth Largest Element in an Array
- Kth Largest Element in an Array
- Kth Largest Element in an Array
- Leetcode: Kth Largest Element in an Array
- LeetCode Kth Largest Element in an Array
- [LeetCode] Kth Largest Element in an Array
- Kth Largest Element in an Array
- [leetcode] Kth Largest Element in an Array
- Kth Largest Element in an Array
- Kth Largest Element in an Array
- leetcode--Kth Largest Element in an Array
- Kth Largest Element in an Array
- 215.Kth Largest Element in an Array
- #leetcode#Kth Largest Element in an Array
- LeetCode Kth Largest Element in an Array
- LeetCode215:Kth Largest Element in an Array
- Kth Largest Element in an Array
- 【猪八戒】- 2017年在线笔试“叠字问题”
- Unity3D-截屏操作
- std::vector<string>转string
- leetcode 129. Sum Root to Leaf Numbers 一个简单的DFS做法
- c++中模板使用时候typename和class的区别
- Kth Largest Element in an Array
- Oracle与MySQL的几点区别
- 合法的括号序列
- 图论Day3(模版-单源最短)
- Mysql数据库操作(一)----数据库(DDL)
- 使用Java自动拆装箱出现的一些意外和原理
- 【NY】括号配对
- JAVA环境配置
- 数据结构——Java实现栈