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;
                }
            }
        }
    }
}
相关推荐
独断万古他化13 小时前
【算法通关】位运算:位图、异或消消乐,高频算法题全解
算法·位运算
FoldWinCard13 小时前
Python 第三次作业
java·服务器·python
傻啦嘿哟13 小时前
Python列表排序:用key参数掌控排序规则
java·开发语言
你的冰西瓜13 小时前
C++ STL算法——修改序列算法
开发语言·c++·算法·stl
大黄说说13 小时前
彻底删除重复节点——LeetCode 82 题「有序链表去重 II」详解
算法·leetcode·链表
如意猴13 小时前
003【高精度算法】加法/减法/乘法/除法
算法
仰泳的熊猫13 小时前
题目1465:蓝桥杯基础练习VIP-回形取数
数据结构·c++·算法·蓝桥杯
大尚来也13 小时前
解决 IDEA 运行 Spring Boot 测试时“命令行过长”错误的终极方案
java·spring boot·intellij-idea
Hag_2013 小时前
LeetCode Hot100 15.三数之和
算法·leetcode·职场和发展
云姜.13 小时前
如何在idea上使用数据库
java·数据库·intellij-idea