| 1 | class Solution { |
| 2 | public List<Integer> luckyNumbers (int[][] matrix) { |
| 3 | int rows = matrix.length; |
| 4 | int cols = matrix[0].length; |
| 5 | int maxOfRowMins=Integer.MIN_VALUE; |
| 6 | for(int i=0;i<rows;i++){ |
| 7 | int minVal = matrix[i][0]; |
| 8 | for(int j=0;j<cols;j++){ |
| 9 | minVal = Math.min(minVal,matrix[i][j]); |
| 10 | } |
| 11 | maxOfRowMins = Math.max(minVal,maxOfRowMins); |
| 12 | } |
| 13 | List<Integer> res = new ArrayList<>(); |
| 14 | for(int i=0;i<cols;i++){ //cols |
| 15 | int maxVal = matrix[0][i]; |
| 16 | for(int j=0;j<rows;j++){ //rows |
| 17 | maxVal = Math.max(maxVal,matrix[j][i]); |
| 18 | } |
| 19 | if(maxVal == maxOfRowMins){ |
| 20 | res.add(maxVal); |
| 21 | } |
| 22 | } |
| 23 | return res; |
| 24 | } |
| 25 | } |