面试题 01.08. 零矩阵

题目描述

 编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。
原题请参考链接https://leetcode-cn.com/problems/zero-matrix-lcci/

题解

方法一 【暴力破解】【迭代】

class Solution:
    def setZeroes(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        row = 0
        col = 0
        for i in range(len(matrix)):
            for j in range(len(matrix[0])):
                if matrix[i][j] == 0:
                    if i==0:
                        row = 1
                    if j==0:
                        col = 1
                    matrix[i][0] = 0
                    matrix[0][j] = 0
        for i in range(1,len(matrix[0])):
            if matrix[0][i] == 0:
                for j in range(1,len(matrix)):
                    matrix[j][i] = 0
        for i in range(1,len(matrix)):
            if matrix[i][0] == 0:
                for j in range(1,len(matrix[0])):
                    matrix[i][j] = 0
        if row == 1:
            matrix[0] = [0 for _ in range(len(matrix[0]))]
        if col == 1:
            for i in range(len(matrix)):
                matrix[i][0] = 0
        return matrix
posted @ 2021-01-12 14:20  Bladers  阅读(63)  评论(0)    收藏  举报