トピック(リンク)
方法1:2つのトラバーサル、1つは対応する行を見つけて列を保存するトラバーサル、もう1つは対応する行と列の数をゼロに設定するトラバーサル
class Solution:
def setZeroes(self, matrix: List[List[int]]) -> None:
"""
Do not return anything, modify matrix in-place instead.
"""
# 得到矩阵的行数,列数
row_nums = len(matrix)
column_nums = len(matrix[0])
rows = []
columns = []
# 遍历矩阵取出元素为零的行和列,并保存
for i in range(row_nums):
for j in range(column_nums):
if matrix[i][j] == 0:
rows.append(i)
columns.append(j)
rows = set(rows)
columns = set(columns)
# 再遍历一遍,把相应的行,列全部置为0
for i in range(row_nums):
for j in range(column_nums):
if i in rows or j in columns:
matrix[i][j] = 0
return matrix