文章目录
1. 题目
2. 思路
(1) 模拟法
- 遍历矩阵,先找出每行的最小值,再找出每列的最大值,若存在重复元素,则表示该元素为幸运数。
3. 代码
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Test {
public static void main(String[] args) {
}
}
class Solution {
public List<Integer> luckyNumbers(int[][] matrix) {
int m = matrix.length;
int n = matrix[0].length;
List<Integer> res = new ArrayList<>();
Set<Integer> set = new HashSet<>();
for (int i = 0; i < m; i++) {
int min = Integer.MAX_VALUE;
for (int j = 0; j < n; j++) {
min = Math.min(min, matrix[i][j]);
}
set.add(min);
}
for (int i = 0; i < n; i++) {
int max = Integer.MIN_VALUE;
for (int j = 0; j < m; j++) {
max = Math.max(max, matrix[j][i]);
}
if (!set.add(max)) {
res.add(max);
}
}
return res;
}
}