【HashMap】 73. 矩阵置零

73. 矩阵置零

解题思路

  • 首先遍历矩阵找到所有的0元素 将其的行和列索引记录下俩
  • 遍历矩阵 将所有的需要更新的元素进行更新 也就是查找hashmap中的每一个元素进行更新
  • 查找行或者列是否在hashmap中
java 复制代码
class Solution {
    public void setZeroes(int[][] matrix) {
        // 首先遍历矩阵找到所有的0元素 将其的行和列索引记录下俩
        Map<Integer,Integer> map = new HashMap<>();
        Map<Integer,Integer> map1 = new HashMap<>();

        for(int i  = 0; i < matrix.length; i++){
            for(int  j = 0; j < matrix[0].length; j++){
                if(matrix[i][j] == 0){
                    map.put(i,j);// 将行和列的索引记录下来
                    map1.put(j,i);
                }
            }
        }

        // 遍历矩阵  将所有的需要更新的元素进行更新
        // 也就是查找hashmap中的每一个元素进行更新
        for(int i = 0; i < matrix.length; i++){
            for(int j = 0; j< matrix[0].length; j++){
                if(map.containsKey(i) || map1.containsKey(j)){
                    matrix[i][j] = 0;
                }
            }
        }

        
    }
}
相关推荐
短剑重铸之日21 小时前
《SpringBoot4.0初识》第四篇:原生镜像
java·原生镜像·springboot4.0
程序员欣宸21 小时前
LangChain4j实战之十二:结构化输出之三,json模式
java·人工智能·ai·json·langchain4j
天若有情6731 天前
打破思维定式!C++参数设计新范式:让结构体替代传统参数列表
java·开发语言·c++
初晴や1 天前
【C++】图论:基础理论与实际应用深入解析
c++·算法·图论
李泽辉_1 天前
深度学习算法学习(五):手动实现梯度计算、反向传播、优化器Adam
深度学习·学习·算法
亲爱的非洲野猪1 天前
从ReentrantLock到AQS:深入解析Java并发锁的实现哲学
java·开发语言
wheelmouse77881 天前
如何设置VSCode打开文件Tab页签换行
java·python
yangminlei1 天前
Spring Boot——日志介绍和配置
java·spring boot
廋到被风吹走1 天前
【Spring】Spring Boot Starter设计:公司级监控SDK实战指南
java·spring boot·spring
李泽辉_1 天前
深度学习算法学习(一):梯度下降法和最简单的深度学习核心原理代码
深度学习·学习·算法