矩阵置零

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<Integer> row = new HashSet();
    HashSet<Integer> 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;
    }
    }
    }
    }
    }
    }

相关推荐
南宫生1 分钟前
力扣-图论-70【算法学习day.70】
java·学习·算法·leetcode·图论
项目申报小狂人28 分钟前
广义正态分布优化算法(GNDO)Generalized Normal Distribution Optimization
算法·概率论
陵易居士36 分钟前
力扣周赛T2-执行操作后不同元素的最大数量
数据结构·算法·leetcode
LabVIEW开发1 小时前
什么样的LabVIEW控制算自动控制?
算法·labview
liuming19922 小时前
Halcon中histo_2dim(Operator)算子原理及应用详解
图像处理·人工智能·深度学习·算法·机器学习·计算机视觉·视觉检测
sc写算法2 小时前
Hash 映射
数据结构·算法·哈希算法
雅妮yyn2 小时前
头歌数据结构-排序的实现及其应用
数据结构·算法
云边有个稻草人2 小时前
【优选算法】—移动零(双指针算法)
算法·排序算法·双指针算法
小墨&晓末2 小时前
【PythonGui实战】自动摇号小程序
python·算法·小程序·系统安全
落魄君子3 小时前
SVM分类-支持向量机(Support Vector Machine)
神经网络·算法·支持向量机·分类