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
            }
        }
    }
}
相关推荐
盒马盒马17 小时前
Rust:智能指针 Box & Rc & Cow
开发语言·算法·rust
Croa-vo18 小时前
Optiver OA 气球节模拟题:拆解系统建模的核心逻辑,附避坑指南
java·数据结构·算法·leetcode·职场和发展
闲看云起18 小时前
LeetCode-day5:三数之和
算法·leetcode·职场和发展
Xの哲學19 小时前
Linux 文件系统一致性: 从崩溃恢复到 Journaling 机制
linux·服务器·算法·架构·边缘计算
wtmReiner19 小时前
山东大学数值计算2026.1大三上期末考试回忆版
笔记·算法
黛色正浓19 小时前
leetCode-热题100-滑动窗口合集(JavaScript)
javascript·算法·leetcode
漫随流水19 小时前
leetcode算法(145.二叉树的后序遍历)
数据结构·算法·leetcode·二叉树
Tony_yitao19 小时前
22.华为OD机试真题:数组拼接(Java实现,100分通关)
java·算法·华为od·algorithm
2501_9418752819 小时前
在东京复杂分布式系统中构建统一可观测性平台的工程设计实践与演进经验总结
c++·算法·github