力扣刷题--73. 矩阵置零【中等】

题目描述

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

算法分析

标签:标记数组

额外定义一个标记二维数组,用于存储matrix0存储的位置在哪里,如果是matrix的某个坐标是0,那么在标记数组相对应的地方把数字置为1,最后根据标记数组,把相应的行列置成0即可。

完整代码

cpp 复制代码
class Solution {
public:
    void setZeroes(vector<vector<int>>& matrix) {
        //额外创建一个二维数组,用于存储0的位置信息
        int m=matrix.size();//行
        int n=matrix[0].size();//列
        vector<vector<int>>flg(m,vector<int>(n,0));
        for(int i=0;i<m;i++)
        {
            for(int j=0;j<n;j++)
            {
                if(matrix[i][j]==0)
                    flg[i][j]=1;//有1的地方代表有0    
            }
        }
        for(int i=0;i<m;i++)    
        {
            for(int j=0;j<n;j++)    
            {
                if(flg[i][j]==1)    
                {
                    for(int p=0;p<n;p++)    
                        matrix[i][p]=0;    
                    for(int q=0;q<m;q++)    
                        matrix[q][j]=0;    
                }
            }
        }
    }
};
相关推荐
Chen—LSN6 小时前
数据结构——拿捏复杂度
java·c语言·开发语言·数据结构·经验分享·笔记·算法
Chen_harmony6 小时前
六、排序详解
c语言·数据结构·算法·排序算法
-dzk-6 小时前
【贪心算法】LC 55.跳跃游戏
算法·游戏·贪心算法
ofoxcoding6 小时前
Jev 模型评测深度解析:核心得分、能力局限与最佳适用任务场景
人工智能·算法·机器学习·ai
Evand J7 小时前
【MATLAB例程】三维A*路径规划与TOA-AOA-TDOA融合定位算法。附下载链接
数据库·算法·matlab
Doubbbbbbble云7 小时前
图算法中的剪枝技术与启发式优化分析4
算法·机器学习·剪枝
鶴哥只手遮天7 小时前
CFL3D深度解析:NASA经典CFD求解器的架构、算法与工程实践
算法
维克兜率天7 小时前
【维克】价差交易实战:配对交易的核心参数设置
大数据·笔记·算法·量化
dtq04247 小时前
数据结构 - 树的概念
c语言·数据结构·学习·算法
晒太羊的猫7 小时前
hot100多维动态规划刷题
算法·动态规划