diff --git a/java/lucky-numbers-in-a-matrix.java b/java/lucky-numbers-in-a-matrix.java new file mode 100644 index 0000000..3ecb89f --- /dev/null +++ b/java/lucky-numbers-in-a-matrix.java @@ -0,0 +1,29 @@ +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(); + } +}