矩阵置零(中等)

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

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

java 复制代码
class Solution {
    public void setZeroes(int[][] matrix) {
        int m=matrix.length;
        int n=matrix[0].length;
        boolean[] r=new boolean[m];
        boolean[] c=new boolean[n];
        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                if(matrix[i][j]==0){
                    r[i]=true;
                    c[j]=true;
                }
            }
        }
        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                if(r[i]||c[j]){
                    matrix[i][j]=0;
                }
            }
        }
        
    }
}
相关推荐
paeamecium5 分钟前
【PAT甲级真题】- Student List for Course (25)
数据结构·c++·算法·list·pat考试
Book思议-13 分钟前
【数据结构】栈与队列全方位对比 + C 语言完整实现
c语言·数据结构·算法··队列
SteveSenna14 分钟前
项目:Trossen Arm MuJoCo
人工智能·学习·算法
NAGNIP25 分钟前
一文搞懂CNN经典架构-DenseNet!
算法·面试
道法自然|~31 分钟前
BugCTF黄道十二宫
算法·密码学
WHS-_-20222 小时前
Python 算法题学习笔记一
python·学习·算法
是苏浙2 小时前
初识集合框架
java·数据结构
沉鱼.442 小时前
第六届题目
算法
黑眼圈子2 小时前
总结一下用Java做算法的常用类和方法
java·开发语言·算法
apcipot_rain2 小时前
天梯赛练习集 时间规划 限时复盘 中档题详解(L1-6~L2-4)
算法