https://leetcode-cn.com/problems/set-matrix-zeroes/

# -*- coding:utf-8 -*-

class Solution(object):
    def setZeroes(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: None Do not return anything, modify matrix in-place instead.
        """
        x_list = []
        y_list = []
        # 首先检查0元素
        for i in range(len(matrix)):
            for j in range(len(matrix[0])):
                if matrix[i][j]==0:
                    x_list.append(i)
                    y_list.append(j)
        # 更改
        for i in range(len(matrix)):
            for j in range(len(matrix[0])):
                if i in x_list or j in y_list:
                    matrix[i][j] = 0
        return matrix
if __name__ == '__main__':
    matrix = [
        [1, 1, 1],
        [1, 0, 1],
        [1, 1, 1]
    ]
    print(Solution().setZeroes(matrix))

思路:首先检查0元素位置,记录所在的行列,然后再次遍历,对出现在所在行所在列中的元素赋值为0.

分类: 算法

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注