矩阵置零解题

给定一个 mxn 的矩阵,如果一个元素为 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]]

解题思路

方法一:创建m*n的数据记录哪一个位置是0,空间复杂度O(m*n)

方法二:找到为0的位置,将对应的第一列/第一行的值设置为0,第一行会有问题,设置一个标记,若第一行出现0,将标记设置为true,在转化

解题

按照解题思路写代码即可,代码附上

java 复制代码
class Solution {
    public void setZeroes(int[][] matrix) {
        boolean flag = false;    //标记
        int row = matrix.length;
        int col = matrix[0].length;
        for (int i = 0; i < row; i++) {
            if (matrix[i][0] == 0) flag = true;
            for (int j = 1; j < col; j++) {
                if (matrix[i][j] == 0) {
                    matrix[i][0] = matrix[0][j] = 0;
                }
            }
        }
        //将第一列和第一行值为0的整个设置为0
        for (int i = row - 1; i >= 0; i--) {
            for (int j = col - 1; j >= 1; j--) {
                if (matrix[i][0] == 0 || matrix[0][j] == 0) {
                    matrix[i][j] = 0;
                }
            }
            if (flag) matrix[i][0] = 0;
        }
    }
}
相关推荐
爱学习的小鱼gogo8 小时前
pyhton 螺旋矩阵(指针-矩阵-中等)含源码(二十六)
python·算法·矩阵·指针·经验·二维数组·逆序
智能化咨询8 小时前
矩阵的奇异值分解(SVD)核心原理与图形学基础应用
矩阵
西***63478 小时前
从信号处理到智能协同:高清混合矩阵全链路技术拆解,分布式系统十大趋势抢先看
网络·分布式·矩阵
AIGC_北苏8 小时前
大语言模型,一个巨大的矩阵
人工智能·语言模型·矩阵
HVACoder11 小时前
复习下线性代数,使用向量平移拼接两段线
c++·线性代数·算法
应用市场12 小时前
楼灯光矩阵显示系统:从理论到实践的完整技术方案
线性代数·矩阵·wpf
然后,是第八天12 小时前
【机械臂运动学基础】变换矩阵
线性代数·矩阵
野蛮人6号14 小时前
力扣热题100道之73矩阵置零
算法·leetcode·矩阵
通信小呆呆1 天前
以矩阵视角统一理解:外积、Kronecker 积与 Khatri–Rao 积(含MATLAB可视化)
线性代数·算法·matlab·矩阵·信号处理
爱学习的小鱼gogo1 天前
python 单词搜索(回溯-矩阵-字符串-中等)含源码(二十)
开发语言·数据结构·python·矩阵·字符串·回溯·递归栈