【LeetCode】73、矩阵置零

SoftwareDevOps 斗灵
优质创作者: 编程框架技术领域
领域专家: 后端开发技术领域
2022-10-09 10:44:18

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

 

    思路和算法

    我们可以用两个标记数组分别记录每一行和每一列是否有零出现。

    具体地,我们首先遍历该数组一次,如果某个元素为 0,那么就将该元素所在的行和列所对应标记数组的位置置为 true。最后我们再次遍历该数组,用标记数组更新原数组即可。

    class Solution {
        public void setZeroes(int[][] matrix) {
            int m = matrix.length, n = matrix[0].length;
            boolean[] row = new boolean[m];
            boolean[] col = new boolean[n];
            for (int i = 0; i < m; i++) {
                for (int j = 0; j < n; j++) {
                    if (matrix[i][j] == 0) {
                        row[i] = col[j] = true;
                    }
                }
            }
            for (int i = 0; i < m; i++) {
                for (int j = 0; j < n; j++) {
                    if (row[i] || col[j]) {
                        matrix[i][j] = 0;
                    }
                }
            }
        }
    }
    
    

     

    ...全文
    82 回复 打赏 收藏 转发到动态 举报
    写回复
    用AI写文章
    回复
    切换为时间正序
    请发表友善的回复…
    发表回复

    126

    社区成员

    发帖
    与我相关
    我的任务
    社区描述
    想刷题,往往三天打鱼两天晒网,没有毅力坚持下去的人。可以跟着此专栏,一天一道题,坚持就是胜利!
    后端云原生前端框架 个人社区 江苏省·苏州市
    社区管理员
    • SoftwareDevOps
    加入社区
    • 近7日
    • 近30日
    • 至今
    社区公告

    “1024 程序员节|用代码,改变世界” 主题征文开启,限定勋章&丰富周边大奖等你拿!快来投稿吧~

    https://bbs.csdn.net/topics/608723542

    在本页面下,评论:我要报名。

     

    即可参赛成功!1022~1024期间发文还能获取1024勋章!快来参与吧!第一次组织,希望各位大佬多多支持呐!

    试试用AI创作助手写篇文章吧