题目
给你一个下标从 0 开始、大小为 m x n 的整数矩阵 matrix ,新建一个下标从 0 开始、名为 answer 的矩阵。使 answer 与 matrix 相等,接着将其中每个值为 -1 的元素替换为所在列的 最大 元素。
返回矩阵 answer 。
思路
先循环列后再循环行,如果数值为 -1 保存下标, 在进行一遍列赋值之后将所有为 -1 的下标赋值为该列的最大值
代码
class Solution {
public int[][] modifiedMatrix(int[][] matrix) {
int m = matrix.length;
int n = matrix[0].length;
int[][] ans = new int[m][n];
//列循环
for (int i = 0; i < n; i++) {
List<Integer> zeroList = new ArrayList<>();
int max = Integer.MIN_VALUE;
//行循环
for (int j = 0; j < m; j++) {
max = Math.max(max, matrix[j][i]);
if (matrix[j][i] == -1) {
zeroList.add(j);
} else {
ans[j][i] = matrix[j][i];
}
}
for (Integer integer : zeroList) {
ans[integer][i] = max;
}
}
return ans;
}
}
题解
灵神题解: leetcode.cn/problems/mo…