- 博客主页:音符犹如代码
- 系列专栏:算法练习
- 关注博主,后期持续更新系列文章
- 如果有错误感谢请大家批评指出,及时修改
- 感谢大家点赞👍收藏⭐评论✍
目录
思路
解题方法
时间复杂度
空间复杂度
Code
思路
首先创建一个与输入矩阵相同大小的新矩阵 answer 来存储最终结果。然后遍历输入矩阵的每个元素。对于值为 -1 的元素,通过内层循环找到其所在列的最大值,并将该最大值赋给新矩阵对应位置。
解题方法
使用两个嵌套的循环遍历矩阵的每个元素。对于值为 -1 的元素,再使用一个内层循环找到其所在列的最大值。
时间复杂度
O(m²*n)
空间复杂度
𝑂(𝑚∗𝑛)
Code
class Solution {
public int[][] modifiedMatrix(int[][] matrix) {
int m = matrix.length;
int n = matrix[0].length;
int[][] answer = new int[m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
answer[i][j] = matrix[i][j];
if (matrix[i][j] == -1) {
int max = Integer.MIN_VALUE;
for (int k = 0; k < m; k++) {
max = Math.max(max, matrix[k][j]);
}
answer[i][j] = max;
}
}
}
return answer;
}
}