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;
                }
            }
        }
    }
}
相关推荐
Jesse_EC2 分钟前
我给消息推送加了 Publisher Confirm,然后亲手引入了一个竞态
java
S3rein3 分钟前
JAVA多线程手撕
java·多线程
用户8181870627465 分钟前
第7章 死锁排查实录:jstack定位死锁的完整流程
java·后端
喵同志不止步于码农23 分钟前
Java Caffeine 快速入门
java·开发语言·后端·并发·缓存一致性
Java成神之路-25 分钟前
Java 并发灵魂拷问:notify/signal 唤醒顺序是规范还是实现?
java
Java牛马38 分钟前
Caffeine 缓存及其应用相关总结
java·redis·缓存·caffeine·数据一致性·本地缓存
aqiu1111111 小时前
【算法刷题】蓝桥杯/AtCoder:删除元素后的中位数问题(Symmetry / Median)
算法·蓝桥杯·排序·中位数
一只叫煤球的猫1 小时前
Spring AI 2.0 源码解析(三):ChatClient 的 Fluent API 如何构建请求?
java·后端·面试
圣保罗的大教堂1 小时前
leetcode 1386. 安排电影院座位 中等
leetcode
软件开发JR1 小时前
基于Web的足球青训俱乐部管理后台系统的设计与开发
java·前端·spring boot·毕业设计