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;
}
}
转载自CSDN-专业IT技术社区
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/cqjnovo/article/details/140207905