力扣刷题--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;    
                }
            }
        }
    }
};
相关推荐
玖釉-3 小时前
下一个排列:从字典序到原地算法的完整推导
数据结构·c++·windows·算法
IronMurphy3 小时前
【算法五十】62. 不同路径
算法
会Tk矩阵群控的小木3 小时前
rcs安卓增强短信群发系统搭建与API集成实战教程
矩阵·新媒体运营·安卓·个人开发·tk
影寂ldy3 小时前
C#一维数组
算法
过期动态3 小时前
【LeetCode 热题 100】移动零
java·数据结构·算法·leetcode·职场和发展·rabbitmq
2601_957786774 小时前
多平台账号矩阵管理的技术路径演变:从人工运维到AI驱动的全链路资产化
人工智能·矩阵
2601_957786774 小时前
AI驱动短视频矩阵管理:SaaS工具如何重构企业内容营销工作流
人工智能·矩阵·重构
计算机安禾4 小时前
【算法分析与设计】第10篇:下界理论与NP完全性初步
大数据·人工智能·算法
Undergoer_TW4 小时前
SLAM实战避坑笔记:基础矩阵退化场景分析与解决方案
笔记·线性代数·矩阵