378.有序矩阵中第K小的元素
思路:
利用优先级队列,改成最大堆,存入队列中,大于k抛出即可
代码实现
class Solution {
public int kthSmallest(int[][] matrix, int k) {
PriorityQueue<Integer> queue = new PriorityQueue<Integer>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
queue.offer(matrix[i][j]);
}
}
while (queue.size() > k) {
queue.poll();
}
return queue.peek();
}
}