力扣刷题--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;    
                }
            }
        }
    }
};
相关推荐
@我漫长的孤独流浪4 分钟前
计算机系统核心概念与性能优化全解析
算法·计算机外设
如竟没有火炬6 分钟前
接雨水22
数据结构·python·算法·leetcode·散列表
ʚ希希ɞ ྀ14 分钟前
二叉树的锯齿层序遍历
数据结构·算法
covco36 分钟前
星链引擎矩阵系统:分布式任务调度与万级账号批量作业自动化技术实践
分布式·矩阵·自动化·批量作业
澈20741 分钟前
二叉搜索树:高效增删查的秘诀
java·开发语言·算法
无敌昊哥战神1 小时前
大模型(LLM)推理优化技术全景总结
python·算法·大模型
平行侠1 小时前
A10 恶劣环境传感器信号仿真与统计检验台
算法
洛水水1 小时前
【力扣100题】34.二叉搜索树中第K小的元素
c++·算法·leetcode
_深海凉_1 小时前
LeetCode热题100-翻转二叉树
算法·leetcode·职场和发展
吃好睡好便好1 小时前
在Matlab中绘制抛物三维曲面图
开发语言·人工智能·学习·算法·matlab·信息可视化