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;
                }
            }
        }
    }
}
相关推荐
java1234_小锋13 小时前
Java高频面试题:为什么Zookeeper集群的数目一般为奇数个?
java·zookeeper·java-zookeeper
草履虫建模13 小时前
Java 集合框架:接口体系、常用实现、底层结构与选型(含线程安全)
java·数据结构·windows·安全·决策树·kafka·哈希算法
坚持就完事了13 小时前
Java泛型
java·开发语言
浮生091913 小时前
DHUOJ 基础 85 86 87
数据结构·c++·算法
cyforkk13 小时前
YAML 基础语法与编写规范详解
java
亓才孓13 小时前
[Spring测试]TestRestTemplate
java·后端·spring
逆光的July13 小时前
扫码登录的设计与实现
java
Miqiuha13 小时前
工作答辩框架
java·开发语言
happymaker062613 小时前
Java学习日记——DAY25(JavaSE完结)
java·开发语言·学习
CHANG_THE_WORLD13 小时前
C++指针与引用:从语法到底层的全面剖析
java·数据结构·c++