class Solution { public List luckyNumbers(int[][] matrix) { int rows = matrix.length, cols = matrix[0].length; int rowCandidate = Integer.MIN_VALUE; for (int y = 0; y < rows; ++y) { int currentRow = matrix[y][0]; for (int x = 1; x < cols; ++x) { currentRow = Math.min(currentRow, matrix[y][x]); } rowCandidate = Math.max(rowCandidate, currentRow); } int colCandidate = Integer.MAX_VALUE; for (int x = 0; x < cols; ++x) { int currentCol = matrix[0][x]; for (int y = 1; y < rows; ++y) { currentCol = Math.max(currentCol, matrix[y][x]); } colCandidate = Math.min(colCandidate, currentCol); } if (rowCandidate == colCandidate) { return Arrays.asList(rowCandidate); } return List.of(); } }