标签:
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.
Credits:
Special thanks to @mithmatt for adding this problem and creating all test cases.
Subscribe to see which companies asked this question
1. Quick Select Algorithm:
https://en.wikipedia.org/wiki/Quickselect
2. Priority Queue:
public class Solution { public int findKthLargest(int[] nums, int k) { PriorityQueue<Integer> pq = new PriorityQueue<Integer>(k); for(int i : nums) { if(pq.size() < k) pq.add(i); else if(pq.peek() < i) { pq.remove(); pq.add(i); } } return pq.peek(); } }
215. Kth Largest Element in an Array
标签:
原文地址:http://www.cnblogs.com/neweracoding/p/5560029.html