zoukankan      html  css  js  c++  java
  • 73.矩阵置零 -leetcode

    给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。

    本题我可以想到 空间O(m+n)的算法,但是O(1)是参考题解区大神的思路。

    收获:

      1. 可以通过连等于来给两个变量赋相同的值:   a = b = 1

      2. 思路上:

        a) 可以用虚拟值代替0来标注,遍历完matrix以后再将 虚拟值替换成0,这样可以避免直接标0 给后面行列带来的麻烦。

        b)采取标记Matrix第一行第一列来标记本行本列

    class Solution:
        def setZeroes(self, matrix: List[List[int]]) -> None:
            """
            Do not return anything, modify matrix in-place instead.
            """
            row = len(matrix)
            col = len(matrix[0])
            row_flag = False
            col_flag = False
            for i in range(row):
                if matrix[i][0] == 0:
                    row_flag = True
                    break
            for j in range(col):
                if matrix[0][j] == 0:
                    col_flag = True
                    break
            for i in range(1,row):
                for j in range(1,col):
                    if matrix[i][j] == 0:
                        matrix[i][0] = matrix[0][j] = 0
            for i in range(1,row):
                for j in range(1,col):
                    if matrix[0][j] == 0 or matrix[i][0] == 0:
                        matrix[i][j] = 0
            if row_flag == True:
                for i in range(row):
                    matrix[i][0] = 0
            if col_flag == True:
                for j in range(col):
                    matrix[0][j] = 0 
  • 相关阅读:
    oracle查看被锁的表和被锁的进程,杀掉进程
    umlの交互图
    Window XP安装Ubuntu14.04实现Samba文件共享
    开源企业IM免费企业即时通讯ENTBOOST V2014.177版本号正式公布
    必看的 jQuery性能优化的38个建议
    正则工具类以及FinalClass
    CF772E Verifying Kingdom
    aop相关术语
    BeanFactoryAware和BeanNameAware
    spring完成自动装配
  • 原文地址:https://www.cnblogs.com/ChevisZhang/p/12435570.html
Copyright © 2011-2022 走看看