LeetCode热题100--73.矩阵置零--中等

1. 题目

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。

示例 1:

输入:matrix = \[1,1,1,1,0,1,1,1,1]

输出:\[1,0,1,0,0,0,1,0,1]

示例 2:

输入:matrix = \[0,1,2,0,3,4,5,2,1,3,1,5]

输出:\[0,0,0,0,0,4,5,0,0,3,1,0]

2. 题解

java 复制代码
class Solution {
    public void setZeroes(int[][] matrix) {
        int n = matrix.length;
        int m = matrix[0].length;
        boolean[] zeroInRow = new boolean[n];
        boolean[] zeroInLine = new boolean[m];
        for(int i = 0; i < n; i++)
            for(int j = 0; j < m; j++)
                if(matrix[i][j] == 0){
                    zeroInRow[i] = true;
                    zeroInLine[j] = true;
                }
        for(int i = 0; i < n; i++)
            for(int j = 0; j < m; j++)
                if(zeroInRow[i] || zeroInLine[j]){
                    matrix[i][j] = 0;
                }
    }
}

3. 解析

官方题解:矩阵置零

  1. class Solution {public void setZeroes(int\[\]\[\] matrix)
    这定义了一个名为"Solution"的新类,并声明了setZeroes()方法来处理这个任务。
  2. int n = matrix.length;
    int m = matrix0.length;
    boolean\[\] zeroInRow = new booleann;
    boolean\[\] zeroInLine = new booleanm;
    这初始化了一些变量,用于存储行和列的信息。zeroInRow是一个布尔数组,如果对应行的元素为零,则它在该索引位置上将被设置为true。同样地,zeroInLine是一个布尔数组,表示相应列是否包含零。
  3. for(int i = 0; i < n; i++)
    for(int j = 0; j < m; j++)
    if(matrixij == 0){
    zeroInRowi = true;
    zeroInLinej = true;
    }
    这两个嵌套循环遍历整个矩阵。如果找到一个零元素,则将相应的zeroInRowi和zeroInLinej设置为true。
  4. for(int i = 0; i < n; i++)
    for(int j = 0; j < m; j++)
    if(zeroInRowi || zeroInLinej){
    matrixij = 0;
    }
    这两个嵌套循环遍历整个矩阵。如果对应的zeroInRowi或zeroInLinej为true,则将该位置上的元素设置为零。
相关推荐
iCxhust几秒前
Matlab求解发电机的极限切除角
开发语言·算法·matlab·电力系统
AI语宙漫游指南2 分钟前
RAG 向量检索(上):从 FLAT 到 IVF,查得快为何可能漏?
后端·算法
垆边人似月.1 小时前
华为题:敏感词替换
算法
0+1111 小时前
算法 --哈希表
数据结构·算法·散列表
Interview Aid1122 小时前
Stripe VO 面经汇总:5 轮面试题目与考察重点
算法
EEET智选2 小时前
科技晨间速报 | AI 安全警钟、开源新模型与苹果智能家居
人工智能·科技·算法·机器学习·ai
挖掘狂人2 小时前
哈希算法:一根看不见的 "指纹",如何撑起整个互联网
算法·程序员·掘金技术征文
鶴哥只手遮天2 小时前
ecRad 1.5.0 算法原理详解
算法·开源
烂蜻蜓2 小时前
Matplotlib入门教程(十三):imshow() 详解——灰度图、彩色图、热力图与矩阵可视化
线性代数·矩阵·matplotlib
不会就选b3 小时前
算法日常・每日刷题--<动态规划>22
算法·动态规划