[LeetCode] LeetCode378. 有序矩阵中第K小的元素

发布时间 2023-12-17 11:08:11作者: Ac_c0mpany丶

题目描述

思路:Top-K问题 + 大顶堆

使用大顶堆求第K小的元素。

方法一:

class Solution {
    public int kthSmallest(int[][] matrix, int k) {
        // 1. 使用大顶堆
        PriorityQueue<Integer> heap = new PriorityQueue<>((e1, e2) -> e2 - e1);
        for (int i = 0; i < matrix.length; i ++) {
            for (int j = 0; j < matrix[i].length; j ++) {
                heap.add(matrix[i][j]);
                if (heap.size() > k) {
                    heap.remove();
                }
            }
        }
        return heap.peek();
    }
}