矩阵置零

73. 矩阵置零

给定一个 mxn 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法**。**

示例 1:

复制代码
输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]

示例 2:

复制代码
输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]

提示:

  • m == matrix.length
  • n == matrix[0].length
  • 1 <= m, n <= 200
  • -231 <= matrix[i][j] <= 231 - 1

进阶:

  • 一个直观的解决方案是使用 O(m n) 的额外空间,但这并不是一个好的解决方案。

  • 一个简单的改进方案是使用 O(m +n) 的额外空间,但这仍然不是最好的解决方案。

  • 你能想出一个仅使用常量空间的解决方案吗?

    class Solution {
    public void setZeroes(int[][] matrix) {
    HashSet row = new HashSet();
    HashSet col = new HashSet();
    for (int i = 0; i < matrix.length; i++) {
    for (int j = 0; j < matrix[i].length; j++) {
    if(matrix[i][j]==0) {
    row.add(i);
    col.add(j);//记录行列
    }
    }
    }
    for (int i = 0; i < matrix.length; i++) {
    for (int j = 0; j < matrix[i].length; j++) {
    for(int s : row) {
    if(i == s) {
    matrix[i][j]=0;//置零
    }
    }
    for(int s : col) {
    if(j == s) {
    matrix[i][j]=0;
    }
    }
    }
    }
    }
    }

相关推荐
Asize10 小时前
146. LRU 缓存
算法
Asize10 小时前
543. 二叉树的直径
算法
lemon_sjdk10 小时前
ObjectProperty
java·开发语言·算法
Zentceh10 小时前
AI-ISP在夜视机芯中的应用:从传统ISP到PixelClean全彩夜视的进化
人工智能·科技·算法·计算机视觉·车载系统·视频·智能硬件
xier_ran11 小时前
【infra之路】AWQ 详解:激活感知权重保护,让 W4A16 量化精度超越 GPTQ
线性代数·算法·机器学习·量化·infra
亦皓ai11 小时前
AI时代后端工程(二):AI把代码写得越来越快,我却越来越不敢让它直接开工了
人工智能·算法·机器学习·搜索引擎·transformer
玖玥拾12 小时前
LeetCode 392 判断子序列
笔记·算法·leetcode
重生之后端学习14 小时前
239. 滑动窗口最大值[困难]✅
java·数据结构·算法·leetcode·职场和发展
fpcc14 小时前
算法和数据结构—动态规划法
数据结构·算法·动态规划
星星.72216 小时前
C++算法竞赛|二分查找与二分答案:边界模板、浮点二分、STL
数据结构·c++·算法