class Solution:
def setZeroes(self, matrix: List[List[int]]) -> None:
"""
Do not return anything, modify matrix in-place instead.
"""
flag_col = False
row = len(matrix)
col = len(matrix[0])
# 先把第一行、第一列该为0的,填充上0
for i in range(row):
# 若某行的第0列为0,则flag_col为True,则第0列需要全部设置为0
if matrix[i][0] == 0:
flag_col = True
for j in range(1,col):
if matrix[i][j] == 0:
# 若某个位置为0,则当前行的第0列、当前列的第0行设置为0
matrix[i][0] = matrix[0][j] = 0
# 从右下角开始向左、上遍历
for i in range(row - 1, -1, -1):
for j in range(col - 1, 0, -1):
# 若某个位置的最上 或 最左有0,则当前位置设置为0
if matrix[i][0] == 0 or matrix[0][j] == 0:
matrix[i][j] = 0
# 标志位为True表示第0列至少存在一个0,则第0列需要全部设置为0
if flag_col == True:
matrix[i][0] = 0
73. 矩阵置零(Medium)
最新推荐文章于 2024-01-24 07:30:00 发布