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 
  • 相关阅读:
    快速入门系列--MVC--07与HTML5移动开发的结合
    快速入门系列--WebAPI--01基础
    快速入门系列--CLR--02多线程
    MongoDB快速入门
    ubuntu 12.04 server编译安装nginx
    apache 正反向代理
    c# 继承,多态,new /overrid 区别, 引用父类的方法
    python 异步线程简单实现
    ubuntu上完全卸载package
    apache2:Invalid option to WSGI daemon process definition
  • 原文地址:https://www.cnblogs.com/ChevisZhang/p/12435570.html
Copyright © 2011-2022 走看看