18、矩阵-矩阵置零

题解:这道题不能直接双层遍历遇到0就开始行列置零,会影响下次循环遍历。所以可以通过两个集合来记录0所在的行和列,然后再双层遍历遇到标记置0,代码如下:

java 复制代码
class Solution {
    public void setZeroes(int[][] matrix) {
        if (matrix==null||matrix.length==0){
            return;
        }
        Set<Integer> xSet = new HashSet<>();
        Set<Integer> ySet = new HashSet<>();
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                if (matrix[i][j]==0){
                    xSet.add(i);
                    ySet.add(j);
                }
            }
        }
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                if (xSet.contains(i)||ySet.contains(j)){
                    matrix[i][j]=0;
                }
            }
        }
    }
}
相关推荐
北城笑笑2 分钟前
Vue 100 ,Metaspace memory lack Error( 元空间内存不足 )
java·前端·javascript·vue
仰泳的熊猫6 分钟前
题目2281:蓝桥杯2018年第九届真题-次数差
数据结构·c++·算法·蓝桥杯
Han.miracle8 分钟前
Spring IoC 与 DI 核心知识点综合测试题
java·前端·数据库
婉然从物10 分钟前
IDEA中plugins无法连接网络
java·ide·intellij-idea
xiaogai_gai10 分钟前
ETL数据流程实战:轻易云平台整合金蝶云星空API接口
java·数据仓库·etl
blackicexs11 分钟前
第九周第一天
数据结构·算法
小小怪75018 分钟前
C++中的代理模式高级应用
开发语言·c++·算法
hoiii18718 分钟前
MATLAB模拟ADS-B数据解码与信号处理整体流程
数据结构·matlab·信号处理
sheji341619 分钟前
【开题答辩全过程】以 基于springboot的健身预约系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
Dfreedom.24 分钟前
归一化技术全景指南
深度学习·算法·机器学习·归一化