1.题目描述
给你一个下标从 0 开始、大小为
m x n
的整数矩阵matrix
,新建一个下标从 0 开始、名为answer
的矩阵。使answer
与matrix
相等,接着将其中每个值为-1
的元素替换为所在列的 最大 元素。返回矩阵
answer
。示例 1:
输入:matrix = [[1,2,-1],[4,-1,6],[7,8,9]] 输出:[[1,2,9],[4,8,6],[7,8,9]] 解释:上图显示了发生替换的元素(蓝色区域)。 - 将单元格 [1][1] 中的值替换为列 1 中的最大值 8 。 - 将单元格 [0][2] 中的值替换为列 2 中的最大值 9 。示例 2:
输入:matrix = [[3,-1],[5,2]] 输出:[[3,2],[5,2]] 解释:上图显示了发生替换的元素(蓝色区域)。
2.思路
对于每一列,遍历每一行,求出列最大值,记为colMax,然后第二次遍历每一行,将值为-1的位置修改为colMax
3.代码实现
class Solution {public int[][] modifiedMatrix(int[][] matrix) {int m = matrix.length, n = matrix[0].length;for (int j = 0; j < n; j++) {int colMax = 0;//第一次遍历每一行找列最大值for (int i = 0; i < m; i++) {if (matrix[i][j] > colMax) {colMax = matrix[i][j];}}//第二次遍历行 更新-1为最大值for (int i = 0 ; i < m; i++) {if (matrix[i][j] == -1) {matrix[i][j] = colMax;}}}return matrix;}
}