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 
  • 相关阅读:
    基于emWin的WAV,MP3软解软件播放器,带类似千千静听频谱,含uCOS-III和FreeRTOS两个版本
    [Linux-CentOS7]yum清华源CentOS7
    [Python]random生成随机6位验证码
    [Python]公司接口返回值规范
    [MacOS]Chrome 强制刷新
    Mybatis的XML中数字不为空的判断
    康师傅JVM:执行引擎(十二)
    Qt 随机颜色的生成
    Qt QVector常见使用方法
    Qt 判断文件是否存在
  • 原文地址:https://www.cnblogs.com/ChevisZhang/p/12435570.html
Copyright © 2011-2022 走看看