美文网首页
73. Set Matrix Zeroes 矩阵设0

73. Set Matrix Zeroes 矩阵设0

作者: sarto | 来源:发表于2022-04-14 15:31 被阅读0次

    题目

    给定一个 m*n 的矩阵,如果矩阵中有一个元素为 0,则需要将整行或整列设置为0。

    解析

    需要进行两次矩阵遍历操作。

    1. 统计需要需要置为0的行和列。
    2. 分别进行行和列的置 0 操作。

    伪代码

    row [m]bool
    col [n]bool
    for i<m
      for j<n
        if m[i][j] == 0
          row[i]=true
          col[j]=true
    for i<m
      for j<n
        if row[i] || col[j]
          m[i][j] == 0
    

    代码

    func setZeroes(matrix [][]int)  {
        m:=len(matrix)
        n:=len(matrix[0])
        
        row := make([]bool, m)
        col := make([]bool, n)
        for i:=0;i<m;i++ {
            for j:=0;j<n;j++ {
                if matrix[i][j] == 0 {
                    row[i]=true
                    col[j]=true
                }
            }
        }
        for i:=0;i<m;i++ {
            for j:=0;j<n;j++ {
                if row[i] || col[j] {
                    matrix[i][j]=0
                }
            }
        }
    }
    
    image.png

    后记

    1. 不分别进行行的列的置0,转为考虑,该点是否被置0,取决与 row 或 col。

    相关文章

      网友评论

          本文标题:73. Set Matrix Zeroes 矩阵设0

          本文链接:https://www.haomeiwen.com/subject/slbtertx.html