力扣73:矩阵置零

力扣73:矩阵置零

题目

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

思路

因为要使用原地算法所以我们没法新创一个二维数组来幅值给矩阵matrix。因为要将同行和同列的所有元素全部设为0所以一个一个的遍历然后将同行列设为0的办法是不可取的,这样会导致整个矩阵最后都为0。那么更加简单的方法就是我们可以先遍历一次将矩阵中为0的元素的行列记录下来之后再进行一次遍历。第二次遍历时我们需要判断该元素所在的行列是否被记录过从而来判断是否需要将这个元素设为0。

代码

cpp 复制代码
class Solution {
public:
    void setZeroes(vector<vector<int>>& matrix) {
        int m = matrix.size();
        int n = matrix[0].size();
        vector<int> row(m);
        vector<int> col(n);
        //第一次遍历
        for(int i = 0 ; i < m ;i++)
        {
            for(int j = 0;j < n;j++)
            {
                //如果元素值为0则记录它的行列号
                if(matrix[i][j] == 0)
                {
                    row[i] = 1;
                    col[j] = 1;
                }
            }
        }
        //第二次遍历
        for(int i = 0;i < m ;i++)
        {
            for(int j = 0;j < n ;j++)
            {
                //如果元素的行列被记录了则将元素置为0
                if(row[i] == 1 || col[j] == 1)
                {
                    matrix[i][j] = 0;
                }
            }
        }
    }
};
相关推荐
To_OC4 小时前
LC 51 N 皇后:我以为难的是回溯,结果栽在了对角线下标
javascript·算法·leetcode
2401_841495644 小时前
【操作系统】进程同步与互斥实验报告
c++·算法·操作系统·进程·并发·同步·互斥
爱刷碗的苏泓舒8 小时前
PPP-AR 中的参考星选取:数学原理、评价指标与切换处理
算法·gnss·模糊度固定·ppp-ar·星间单差·参考星·卫星端偏差
烬羽11 小时前
递归老写崩?一个"退回"公式,把回溯题变成填空题
javascript·深度学习·算法
闪电悠米11 小时前
力扣hot100-41.缺失的第一个正数-原地哈希详解
数据结构·算法·哈希算法
星空露珠12 小时前
28种颜色对应名称,
开发语言·数据库·算法·游戏·lua
QXWZ_IA14 小时前
桥梁数字孪生怎么落地?
人工智能·科技·算法·智能硬件·政务
Kel14 小时前
输出层与反分词(Output Layer & Detokenization)
人工智能·算法·架构
Xzaveir_77714 小时前
OPPO、vivo、荣耀号码认证:多终端拨测矩阵与异常复现
大数据·网络·科技·矩阵·产品经理·ai-native