首页 > 其他 > 详细

073 Set Matrix Zeroes

时间:2015-07-18 07:02:30      阅读:144      评论:0      收藏:0      [点我收藏+]

073 Set Matrix Zeroes 

这道题唯一有点tricky的地方就是 需要O(1) 的space, 这样就利用第一个行 和第一列作为整个matrix的标记位,再用 row 和 col两个作为第一列和第一个行的标志位

class Solution:
    # @param {integer[][]} matrix
    # @return {void} Do not return anything, modify matrix in-place instead.
    def setZeroes(self, matrix):
        m = len(matrix)
        if m == 0:
            return matrix
        n = len(matrix[0])
        row, col = False, False
        for j in range(0 ,n):
            if matrix[0][j] == 0:
                row = True
                break
        for i in range(0,m):
            if matrix[i][0] == 0:
                col = True
                break
        for i in range(0, m):
            for j in range(0,n):
                if matrix[i][j] == 0:
                    matrix[i][0] = 0
                    matrix[0][j] = 0
        for i in range(1, m):
            for j in range(1,n):
                if matrix[i][0] == 0 or matrix[0][j] == 0:
                    matrix[i][j] = 0
        if row:
            for j in range(0 ,n):
                matrix[0][j] = 0
        if col:
            for i in range(0,m):
                matrix[i][0] = 0

 

073 Set Matrix Zeroes

原文:http://www.cnblogs.com/dapanshe/p/4656009.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!