73. 矩阵置零

简介: 73. 矩阵置零

73. 矩阵置零

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


进阶:

  • 一个直观的解决方案是使用  O(mn) 的额外空间,但这并不是一个好的解决方案。
  • 一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。
  • 你能想出一个仅使用常量空间的解决方案吗?


示例 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


我的思路:


           我的想法是,先把原始矩阵遍历一遍


           然后找出值为0元素在哪一行和在那一列,


           然后把行号和列号作为一个整体存储到另一个二维数组中


           然后遍历二维数组,


           什么时候将元素的值 赋值 为 0呢?


                 答:当元素的值不为0时,然后判断 行号相等或者列号相等

/**
 * @param {number[][]} matrix
 * @return {void} Do not return anything, modify matrix in-place instead.
 */
var setZeroes = function(matrix) {
    let arr01 = [];
    let i,j;//i表示有几行,j表示每行有几列
    let m = matrix.length,n = matrix[0].length;
    for(i = 0;i < m;i++){
        for(j = 0;j <n ;j++){
            if(matrix[i][j] == 0){
                arr01.push([i,j]);
            }
        }
    }
    for(let k = 0; k < arr01.length;k++){//确定值为0的个数
        for(i = 0;i < m;i++){
            for(j = 0;j <n ;j++){
                 if(matrix[i][j] != 0){
                    if((i == arr01[k][0]) || (j == arr01[k][1])){
                        matrix[i][j] = 0;
                    }
                }   
            }
        }
    }
};

如果有用,请点赞支持!!!

相关文章
|
6月前
|
算法 索引
leetcode-73:矩阵置零
leetcode-73:矩阵置零
29 0
|
3月前
|
存储 算法 NoSQL
LeetCode第73题矩阵置零
文章介绍了LeetCode第73题"矩阵置零"的解法,通过使用矩阵的第一行和第一列作为标记来记录哪些行或列需要置零,从而在不增加额外空间的情况下解决问题。
LeetCode第73题矩阵置零
|
3月前
|
算法
空间判断点是否在线段上
空间判断点是否在线段上
24 0
|
算法 Java
算法-矩阵置零
算法-矩阵置零
|
6月前
|
人工智能
PTA- 矩阵的主对角线元素之和
矩阵的主对角线元素之和
94 1
|
6月前
|
算法 前端开发 测试技术
3033. 修改矩阵
3033. 修改矩阵
36 0
|
6月前
|
算法
算法题—顺时针打印矩阵
算法题—顺时针打印矩阵
49 0
求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。
求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。
351 0
判断上三角矩阵
判断上三角矩阵 (15 分)
121 0
|
C++
2373. 矩阵中的局部最大值
给你一个大小为 n x n 的整数矩阵 grid 。 生成一个大小为 (n - 2) x (n - 2) 的整数矩阵  maxLocal ,并满足: maxLocal[i][j] 等于 grid 中以 i + 1 行和 j + 1 列为中心的 3 x 3 矩阵中的 最大值 。 换句话说,我们希望找出 grid 中每个 3 x 3 矩阵中的最大值。 返回生成的矩阵。
90 0