[leetcode] Kth Largest Element in an Array
2015-06-03 02:22
381 查看
From : https://leetcode.com/problems/kth-largest-element-in-an-array/
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
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.
class Solution { public: int findKthLargest(vector<int>& nums, int k) { if(nums.size()<k || k<=0) return 0; multiset<int, less<int>> box; multiset<int, less<int>>::iterator it; for(int i=0; i<nums.size(); i++) { if(i>=k) { it = box.begin(); if(*it<nums[i]) { box.erase(it); box.insert(nums[i]); } } else box.insert(nums[i]); } return *box.begin(); } };
public class Solution { public int findKthLargest(int[] nums, int k) { int len = nums.length, left=0, right = len-1, index=partation(nums, left, right); while(len != index+k) { if(index+k > len) { right = index-1; } else { left = index+1; } index=partation(nums, left, right); } return nums[index]; } private int partation(int[] nums, int left, int right) { int pos = left, v = nums[pos]; while(left <= right) { while(left<=right && nums[left]<=v) ++left; while(left<=right && nums[right]>v) --right; if(left < right) { swap(nums, left, right); } } swap(nums, pos, right); return right; } void swap(int[] nums, int i, int j) { int t = nums[i]; nums[i] = nums[j]; nums[j] = t; } }
public class Solution { public int findKthLargest(int[] nums, int k) { PriorityQueue<Integer> pq = new PriorityQueue<Integer>(); int len = nums.length; for(int i=0; i < len && i < k; ++i) { pq.add(nums[i]); } for(int i=k; i<len; ++i) { if(pq.peek() < nums[i]) { pq.poll(); pq.add(nums[i]); } } return pq.peek(); } }
相关文章推荐
- 【最小生成树】Bzoj1601[Usaco2008 Oct]灌水
- [转]Xcode 的正确打开方式——Debugging
- HackerRank - "Detect HTML Attributes"
- Sqrt(x)
- SQLHelper类
- Valid Number
- [hdu5247]rmq+预处理
- [hdu5249]动态中位数
- 网络请求 代码 系统自带类源码
- Gas Station
- 【强连通分量】Bzoj1051 HAOI2006 受欢迎的牛
- iOS CGRectGetMaxX/Y 使用
- Reverse Integer 解题报告
- 图 | 为什么存在关于图的研究
- [hdu4497]分解质因数
- jQuery 属性
- jQuery 杂项方法
- jQuery AJAX 方法
- 一个软件工程师的7年工作经验总结
- 【汇总】iOS开发及Xcode使用中遇到的一些报错问题汇总