LeetCode讲解篇之面试题 01.08. 零矩阵

文章目录

题目描述

题解思路

遍历矩阵,若当前元素为零,则将该行和该列的第一个元素置零

遍历第一行,若当前元素为零,则将当前列置零

遍历第一列,若当前元素为零,则将当前行置零

题解代码

go 复制代码
func setZeroes(matrix [][]int)  {
    m, n := len(matrix) - 1, len(matrix[0]) - 1
    for i := m; i >= 0; i-- {
        if matrix[i][0] == 0 {
            defer func() {
                for i := m; i >= 0; i-- {
                    matrix[i][0] = 0
                } 
            }()
            break
        }
    }
    for i := n; i >= 0; i-- {
        if matrix[0][i] == 0 {
            defer func() {
                for i := n; i >= 0; i-- {
                    matrix[0][i] = 0
                }
            }()
            break
        }
    }

    for i := m; i > 0; i-- {
        for j := n; j > 0; j-- {
            if matrix[i][j] == 0 {
                matrix[i][0] = 0
                matrix[0][j] = 0
            }
        }
    }

    for i := m; i > 0; i-- {
       if  matrix[i][0] == 0 {
           for j := n; j > 0; j-- {
               matrix[i][j] = 0
           }
       }
    }

    for i := n; i > 0; i-- {
        if matrix[0][i] == 0 {
            for j := m; j > 0; j-- {
                matrix[j][i] = 0
            }
        }
    }
}
相关推荐
飞桨PaddlePaddle1 小时前
Wan2.1和HunyuanVideo文生视频模型算法解析与功能体验丨前沿多模态模型开发与应用实战第六期
人工智能·算法·百度·音视频·paddlepaddle·飞桨·deepseek
Starry_hello world2 小时前
C++ 快速幂算法
c++·算法·有问必答
石去皿3 小时前
力扣hot100 91-100记录
算法·leetcode·职场和发展
圣保罗的大教堂4 小时前
leetcode 2799. 统计完全子数组的数目 中等
leetcode
SsummerC4 小时前
【leetcode100】组合总和Ⅳ
数据结构·python·算法·leetcode·动态规划
YuCaiH5 小时前
数组理论基础
笔记·leetcode·c·数组
2301_807611495 小时前
77. 组合
c++·算法·leetcode·深度优先·回溯
SsummerC6 小时前
【leetcode100】零钱兑换Ⅱ
数据结构·python·算法·leetcode·动态规划
好易学·数据结构7 小时前
可视化图解算法:二叉树的最大深度(高度)
数据结构·算法·二叉树·最大高度·最大深度·二叉树高度·二叉树深度
程序员-King.7 小时前
day47—双指针-平方数之和(LeetCode-633)
算法·leetcode