Kth Largest Element in an Array
Using a heap.
private static final Comparator<Integer> valueComparator = new Comparator<Integer>() {
@Override
public int compare(Integer i, Integer j) {
return j - i;
}
};
public int findKthLargest(int[] nums, int k) {
Queue<Integer> queue = new PriorityQueue<Integer>(nums.length, valueComparator);
for (int i : nums) {
queue.add(i);
}
for (int i = 0; i <= nums.length; i++) {
if (i == (k-1)) {
return queue.remove();
} else {
queue.remove();
}
}
return -1;
}