标记的使用
给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。
class Solution:
def setZeroes(self, matrix: List[List[int]]) -> None:
# 获取矩阵的行数m和列数n
m, n = len(matrix), len(matrix[0])
# 创建两个布尔数组,用于记录哪些行和列需要置零
row, col = [False] * m, [False] * n
# 第一次遍历矩阵,标记出需要置零的行和列
for i in range(m):
for j in range(n):
if matrix[i][j] == 0:
row[i] = col[j] = True
# 第二次遍历矩阵,将需要置零的行和列全部置零
for i in range(m):
for j in range(n):
if row[i] or col[j]:
matrix[i][j] = 0