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;
                }
            }
        }
    }
}
相关推荐
普贤莲花4 分钟前
【2026年第29周---写于20260718】---整理,断舍离
程序人生·算法·生活
Reart29 分钟前
Leetcode 674.最长连续递增序列 (719)
后端·算法
sun032232 分钟前
【笔记】Spring MVC 相关介绍
java·spring·mvc
Reart33 分钟前
Leetcode 300.最长递增子序列(719)
算法
可编程芯片开发37 分钟前
VSG虚拟同步发电机simulink建模与仿真
算法
en.en..38 分钟前
冒泡排序与选择排序完整对比解析
开发语言·数据结构·算法·c#·排序算法
兰令水44 分钟前
hot100【acm版】【2026.7.18打卡-java版本】
java·开发语言·算法
Reart1 小时前
Leetcode 714.买卖股票的最佳时机含手续费(719)
后端·算法
CoderYanger1 小时前
A.每日一题:3020. 子集中元素的最大数量
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
Jayden_Ruan1 小时前
C++组合的输出
c++·算法·深度优先