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 
  • 相关阅读:
    第12课:HTML基础之DOM操作1
    第12课:HTML+CSS的基础用法
    selenium对应三大浏览器(谷歌、火狐、IE)驱动安装
    windows下查看端口是否被占,以及端口被哪个程序占用
    windows下jenkins安装过程中的那些坑
    数据库命令大全
    机器学习总结之逻辑回归Logistic Regression
    Longest Substring Without Repeating Characters
    ffmpeg常见命令
    KNN及其改进算法的python实现
  • 原文地址:https://www.cnblogs.com/ChevisZhang/p/12435570.html
Copyright © 2011-2022 走看看