LeetCode #73 Set Matrix Zeroes

题目

Set Matrix Zeroes


解题方法

题目本身并不难,但给定的限制条件比较苛刻:需要O(1)的空间复杂度。我采用的是比较容易想到的替换式思路,把数组中的0替换成不会出现的特殊字符'#',但这是得益于python的list特性(python牛逼),实际上这种做法还是不太合适的,相比之下力扣上有一个置首位为0的做法比较巧妙。


代码

class Solution:
    def setZeroes(self, matrix: List[List[int]]) -> None:
        m = len(matrix)
        n = len(matrix[0])
        
        for i in range(m):
            for j in range(n):
                if matrix[i][j] == 0:
                    matrix[i][j] = '#'
        for i in range(m):
            for j in range(n):
                if matrix[i][j] == '#':
                    for x in range(m):
                        if matrix[x][j] != '#':
                            matrix[x][j] = 0
                    for y in range(n):
                        if matrix[i][y] != '#':
                            matrix[i][y] = 0
        for i in range(m):
            for j in range(n):
                if matrix[i][j] == '#':
                    matrix[i][j] = 0
posted @ 2020-10-14 15:16  老鼠司令  阅读(84)  评论(0)    收藏  举报