给定一个?m?x?n ?的矩阵,如果一个元素为?0?,则将其所在行和列的所有元素都设为?0?。请使用?原地?算法。
例:
输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]
解析:遍历一遍,将为0的位置进行存储,然后遍历存储的值进行置0即可。
class Solution(object):
def setZeroes(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: None Do not return anything, modify matrix in-place instead.
"""
m = len(matrix) # 行数
n = len(matrix[0]) # 列数
ans = [] # 初始化存储列表
for i in range(m): # 遍历找0
for j in range(n):
if matrix[i][j] == 0:
ans.append([i, j]) # 存储
for i in ans:
for j in range(m):
matrix[j][i[1]] = 0 # 列置0
matrix[i[0]][:]=[0]*n # 行置0
return matrix
|