题解 | #寻找第K大#
寻找第K大
https://www.nowcoder.com/practice/e016ad9b7f0b45048c58a9f27ba618bf
import java.util.*;
public class Solution {
public int findKth(int[] a, int n, int k) {
// write code here
if (a == null || n < 1 || k < 1 || n < k) {
return -1;
}
PriorityQueue<Integer> pq = new PriorityQueue<>();
for (int i = 0; i < n; i++) {
if (i < k) {
pq.offer(a[i]);
} else if (pq.peek() < a[i]) {
pq.poll();
pq.offer(a[i]);
}
}
return pq.poll();
}
}
