矩阵置零解题

给定一个 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;
        }
    }
}
相关推荐
一只小小的土拨鼠17 分钟前
【国奖冲刺/全网首发】2026年第十四届“泰迪杯”A、B、C题完整解题思路、代码与高质量论文大合集
c语言·矩阵·数据挖掘
普中科技5 小时前
【普中 51-Ai8051 开发攻略】-- 第 10 章 矩阵按键实验
单片机·嵌入式硬件·矩阵·开发板·普中科技·ai8051u·aicube
歪歪歪比巴卜6 小时前
2026年AI新媒体运营工具怎么选?核心功能与适用场景解析
大数据·矩阵·新媒体运营
m0_743106467 小时前
【3D硬核】四元数(Quaternions)与旋转矩阵(Rotation)——三维空间中的旋转
人工智能·计算机视觉·3d·矩阵·几何学
别或许7 小时前
线代中为什么左乘一个列满秩矩阵,不改变矩阵的秩?
人工智能·算法·矩阵
wfbcg8 小时前
每日算法练习:LeetCode 54. 螺旋矩阵 ✅
算法·leetcode·矩阵
Star Learning Python9 小时前
《简单线性代数》-20260414
线性代数·决策树·机器学习
AI科技星1 天前
v=c 物理理论核心参数转换表达式大全
开发语言·线性代数·算法·数学建模·平面
_日拱一卒1 天前
LeetCode:240搜索二维矩阵Ⅱ
数据结构·线性代数·leetcode·矩阵
闪闪发亮的小星星1 天前
比较两个旋转矩阵的误差
线性代数·矩阵