1380. 矩阵中的幸运数题解
题目来源:1380. 矩阵中的幸运数
2022.02.15 每日一题
今天是元宵节,祝大家元宵节开开心心,团团圆圆
今天的题目就比较简单了,找到在同一行的所有元素中最小,同时在同一列的所有元素中最大的数字
统计每一行最小的数字和每一列最大的数字,最后遍历数组判断这个数字是否是同一行的所有元素中最小,同时在同一列的所有元素中最大的数字
class Solution
{
public:
vector<int> luckyNumbers (vector<vector<int>>& matrix)
{
vector<int>res;
int m=matrix.size(),n=matrix[0].size();
vector<int>minRow(m,INT_MAX),maxCol(n);
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
minRow[i] = min(minRow[i], matrix[i][j]);
maxCol[j] = max(maxCol[j], matrix[i][j]);
}
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (matrix[i][j] == minRow[i] && matrix[i][j] == maxCol[j])
{
res.push_back(matrix[i][j]);
}
}
}
return res;
}
};
class Solution {
public List<Integer> luckyNumbers (int[][] matrix) {
List<Integer> res = new ArrayList<Integer>();
int m = matrix.length, n = matrix[0].length;
int[] minRow = new int[m];
Arrays.fill(minRow, Integer.MAX_VALUE);
int[] maxCol = new int[n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
minRow[i] = Math.min(minRow[i], matrix[i][j]);
maxCol[j] = Math.max(maxCol[j], matrix[i][j]);
}
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (matrix[i][j] == minRow[i] && matrix[i][j] == maxCol[j]) {
res.add(matrix[i][j]);
}
}
}
return res;
}
}