矩阵置零解题

给定一个 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;
        }
    }
}
相关推荐
reikocao1 天前
IMU预积分误差模型推导:协方差传播、残差构建、雅可比矩阵
人工智能·线性代数·矩阵
TK泰妞1 天前
TikTok 带货素材如何批量测试?从参考视频到内容矩阵的实操方法
线性代数·矩阵·音视频
学习论之费曼学习法1 天前
无人值守AI内容矩阵实战(7):Playwright 发布器避坑——编辑器竞态、索引延迟与风控
python·线性代数·矩阵·编辑器·浏览器自动化·playwright·踩坑记录
惊鸿一博2 天前
Plücker直线_ 用两个三维向量描述一条空间直线
线性代数·算法·直线·几何表示
zhuhai_xigedian3 天前
源网荷储一体化柜通信层:网络架构与协议矩阵设计
网络·矩阵·架构
I Am a robert girl3 天前
MeqMuon 源码级拆解:当优化器开始“配平”更新矩阵
深度学习·线性代数·矩阵·优化器·大模型预训练·muon·矩阵正交化
大雨歌4 天前
笛卡尔坐标 → 自然坐标(Frenet) 逐步推导全解 -5
线性代数
云的雨 雨的云5 天前
手写算法动画上位机:从排序到线性代数可视化
线性代数·算法
goujunwe5 天前
保险 GEO 信源矩阵搭建:代理人轻量化分层信源,构建 AI 认可的交叉佐证网络
人工智能·线性代数·矩阵
Samson Bruce5 天前
【数学之美】
线性代数·算法·概率论