一个矩阵中有的位置会有数字0,要求将带0的该行和该列都转化为0,要求空间复杂度为O(1):
不能直接变,因为这样会影响下面的判断,可以先将0变成None,然后第二次再变为0,这样就不会有问题了:
class Solution: def setZeroes(self, matrix): """ :type matrix: List[List[int]] :rtype: void Do not return anything, modify matrix in-place instead. """ m, n = len(matrix), len(matrix[0]) for i in range(m): for j in range(n): if matrix[i][j] == 0: matrix[i][j] = None for i in range(m): for j in range(n): if matrix[i][j] == None: matrix[i][j] = 0 for k in range(m): if matrix[k][j] != None: matrix[k][j] = 0 for k in range(n): if matrix[i][k] != None: matrix[i][k] = 0