73. Set Matrix Zeroes

一个矩阵中有的位置会有数字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
原文地址:https://www.cnblogs.com/mangmangbiluo/p/10202636.html