题目
给你一个m*n的矩阵,矩阵中的数字各不相同 。请你按任意顺序返回矩阵中的所有幸运数。来源:力扣(LeetCode)
幸运数是指矩阵中满足同时下列两个条件的元素:
- 在同一行的所有元素中最小
- 在同一列的所有元素中最大
解答
方案一
m*n的int数组,找出每一行的最小值,然后再找出每一行的最大值;对比这两个值列,只要其索引位置相同(即是同一个位置的数),就说明该数是幸运数,即可输出!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| public List<Integer> luckyNumbers (int[][] matrix) { List<Integer> res = new Linkedlist<Integer>(); int m = matrix.length; int n = matrix[0].length; int[] rowMin = new int[m]; Arrays.fill(rowMin, Integer.MAX_VALUE); int[] rowMax = new int[n]; for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) { if(rowMin[i] > matrix[i][j]){ rowMin[i] = matrix[i][j]; } if(rowMax[j] < matrix[i][j]){ rowMax[j] = matrix[i][j]; } } }
for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) { if(matrix[i][j] == rowMin[i] && matrix[i][j] == rowMax[j]){ res.add(matrix[i][j]); } } }
return res; }
|
本文标题:矩阵中的幸运数
文章作者:foreverSFJ
发布时间:2022-02-15 16:16:03
最后更新:2022-02-21 19:16:03
原始链接:Algorithm/20220215幸运数.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!