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;
                }
            }
        }
    }
}
相关推荐
2401_857683545 分钟前
C++代码静态检测
开发语言·c++·算法
时艰.10 分钟前
JVM 垃圾收集器(G1&ZGC)
java·jvm·算法
2401_8384725110 分钟前
内存泄漏自动检测系统
开发语言·c++·算法
m0_7066532328 分钟前
基于C++的爬虫框架
开发语言·c++·算法
iRuriCatt31 分钟前
智慧景区管理系统 | 计算机毕设项目
java·前端·spring boot·vue·毕设
求真求知的糖葫芦32 分钟前
耦合传输线分析学习笔记(八)对称耦合微带线S参数矩阵推导与应用(上)
笔记·学习·矩阵·射频工程
diediedei35 分钟前
嵌入式数据库C++集成
开发语言·c++·算法
君义_noip37 分钟前
洛谷 P3388 【模板】割点(割顶)
c++·算法·图论·信息学奥赛·csp-s
xie0510_38 分钟前
string模拟实现
开发语言·c++·算法
天空属于哈夫克31 小时前
企业微信外部群运营升级:API 主动推送消息开发实战
java·数据库·mysql