题目
给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。
示例 1:
输入:
[
[1,1,1],
[1,0,1],
[1,1,1]
]
输出:
[
[1,0,1],
[0,0,0],
[1,0,1]
]
思路
从头遍历数组,记录0存在的行号和列号,然后置零
实现
class Solution: def setZeroes(self, matrix: List[List[int]]) -> None: """ Do not return anything, modify matrix in-place instead. """ row = len(matrix) col = len(matrix[0]) rows, cols = set(), set() for i in range(row): for j in range(col): if matrix[i][j] == 0: rows.add(i) cols.add(j) for i in range(row): for j in range(col): if i in rows or j in cols: matrix[i][j] = 0