1380. Lucky Numbers in a Matrix

1380. Lucky Numbers in a Matrix #

题目 #

  • 给你一个 m * n 的矩阵,矩阵中的数字 各不相同 。请你按 任意 顺序返回矩阵中的所有幸运数。
  • 幸运数 是指矩阵中满足同时下列两个条件的元素:
    • 在同一行的所有元素中最小
    • 在同一列的所有元素中最大

思路 #

模拟 #

代码 #

模拟 #

class Solution {
    public List<Integer> luckyNumbers (int[][] matrix) {
        List<Integer> ans = new LinkedList<>();

        int M = matrix.length, N = matrix[0].length;

        int[] minimumRow = new int[M], maximumCol = new int[N];
        Arrays.fill(minimumRow, Integer.MAX_VALUE);
        Arrays.fill(maximumCol, Integer.MIN_VALUE);

        for (int i = 0; i < M; i++) {
            for (int j = 0; j < N; j++) {
                minimumRow[i] = Math.min(minimumRow[i], matrix[i][j]);
                maximumCol[j] = Math.max(maximumCol[j], matrix[i][j]);
            }
        }

        for (int i = 0; i < M; i++) {
            for (int j = 0; j < N; j++) {
                if (matrix[i][j] == minimumRow[i] && matrix[i][j] == maximumCol[j]) ans.add(matrix[i][j]);
            }
        }

        return ans;
    }
}