73. 矩阵置零
给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。
示例:
示例 1:
输入:
[
[1,1,1],
[1,0,1],
[1,1,1]
]
输出:
[
[1,0,1],
[0,0,0],
[1,0,1]
]
示例 2:输入:
[
[0,1,2,0],
[3,4,5,2],
[1,3,1,5]
]
输出:
[
[0,0,0,0],
[0,4,5,0],
[0,3,1,0]
]
方法一:
第一步:用两个布尔变量rowFlag,colFlag来记录第0行和第0列是否有0需要置行、列为0;
第二步:从matrix[1][1]开始遍历,当遍历到matrix[i][j]时需要将i行,j列的值置零,将这个结果记录到第0行和第0列中,也就是将matrix[0][j],matrix[i][0]置零;
第三步:分别遍历第0行和第0列,遍历第0行遇到0时将此列置零,遍历第0列遇到0时将此行置零。