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;
                }
            }
        }
    }
}
相关推荐
最贪吃的虎9 小时前
Java基础之泛型
java·运维·jvm·分布式·后端
05大叔10 小时前
MybatisPlus
java·服务器·前端
WhereIsMyChair10 小时前
DPO 核心损失函数β调大可以控制不偏离ref模型太远
人工智能·算法·机器学习
智者知已应修善业10 小时前
【组合数】2024-3-16
c语言·c++·经验分享·笔记·算法
java1234_小锋10 小时前
RocketMQ的Producer是如何发送消息的?
java·rocketmq·java-rocketmq
l1t11 小时前
将利用30行X算法求解数独的python程序转成DuckDB自定义函数并比较性能
数据库·python·算法·duckdb
橘色的狸花猫11 小时前
浪漫色彩下的博客系统
java·vue
墨雪不会编程11 小时前
C++【string篇2】:从零基础开始到熟悉使用string类
java·开发语言·c++
夏幻灵11 小时前
写给初次用IDEA的新人
java·ide·intellij-idea
jgyzl11 小时前
2026.1.2 Tomcat保姆级使用教程
java·tomcat