力扣热题100道之73矩阵置零

解法

先遍历一遍所有的数组,定义一个行记录数组,和一个列记录数组,如果一个元素为0,将他的行和列数组对应的值变为1,再遍历数组,将行和列数组中为1的地方变为0。

题解中优化的解法:

1:将第一列和第一行作为标记的行和列,再定义两个变量分别标记第一行和第一列原来是否有0的标记

2:只记录第一列的,第一列的第一个元素可以记录第一行中是否有0。这种方法感觉纯纯没事找事,差这一点空间吗?差这一个变量的空间吗?

复制代码
class Solution {
    public void setZeroes(int[][] matrix) {
        int ml=matrix.length;
        int nl=matrix[0].length;
        int[]row=new int[ml];
        int[]colnum=new int[nl];
        for(int i=0;i<ml;i++){
            for(int j=0;j<nl;j++){
                if(matrix[i][j]==0){
                    row[i]=1;
                    colnum[j]=1;
                }
            }
        }
        for(int i=0;i<ml;i++){
            for(int j=0;j<nl;j++){
                if(row[i]==1){
                    matrix[i][j]=0;
                }
                if(colnum[j]==1){
                    matrix[i][j]=0;
                }
            }
        }
    }
}
历史解法

这道题有点简单,并且题解的做法也还好,不难想到,一下子就做出来了。

相关推荐
computersciencer5 小时前
应用贝叶斯公式:迟到了,那坐的是哪种交通工具呢?
算法·机器学习·概率论
若亦_5 小时前
排序>>交换排序
java·数据结构·算法
dialect_13 小时前
KMP算法
开发语言·c++·算法
reikocao14 小时前
卡尔曼滤波的动态机制:P如何改变融合权重
算法
漂流瓶jz14 小时前
UVA-1612 猜名次 题解答案代码 算法竞赛入门经典第二版
数据结构·算法·题解·排序·aoapc·算法竞赛入门经典
吞下星星的少年·-·15 小时前
Div.2 CF 1130B题(构造,贪心)
算法·贪心·构造
文丑颜不良啊15 小时前
LeetCode1481~1500题目解析
java·leetcode
文丑颜不良啊15 小时前
LeetCode1381~1400题目解析
java·leetcode
是main不是漫16 小时前
【双指针——移动零】数组划分类题目的入门基石
c++·算法
深圳市快瞳科技有限公司17 小时前
野外鸟类AI识别落地实录:输入适配、结构化输出、去重聚合与置信度分流的工程实践
算法·计算机视觉·鸟类识别·鸟类ai识别·野外鸟类观测·林业调查