leetcode做题笔记73矩阵置零

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

思路一:记录行列值

cpp 复制代码
void setZeroes(int** matrix, int matrixSize, int* matrixColSize){
    int row[matrixSize],col[*matrixColSize];
    for(int i = 0;i<matrixSize;i++)row[i]=0;
    for(int i = 0;i<*matrixColSize;i++)col[i] = 0;
    for(int i = 0;i<matrixSize;i++)
    {
        for(int j = 0;j<*matrixColSize;j++)
        {
            if(matrix[i][j]==0)
            {
                row[i] = 1;
                col[j] = 1;
            }
            
        }
    }
    for(int i = 0;i<matrixSize;i++)
    {
        if(row[i]==1)
        {
           for(int j = 0;j<*matrixColSize;j++)
            {
                matrix[i][j] = 0;
                
            } 
        }
        
    }
    for(int i = 0;i<*matrixColSize;i++)
    {
        if(col[i]==1)
        {
           for(int j = 0;j<matrixSize;j++)
            {
                matrix[j][i] = 0;
                
            } 
        }
        
    }
    return matrix;


}

分析:

本题可直接将行列值记录下来,再根据行列值内数字是否为1将该行或该列的数字全部变为0

总结:

本题考察矩阵的应用,直接暴力解决即可。

相关推荐
逑之1 小时前
C语言笔记3:分支与循环
c语言·开发语言·笔记
逑之1 小时前
C语言笔记6:调试
c语言·笔记
做cv的小昊1 小时前
【TJU】信息检索与分析课程笔记和练习(10)专利文献和中文专利检索
经验分享·笔记·学习·全文检索·学习方法·信息检索
saoys1 小时前
Opencv 学习笔记:滑块(Trackbar)实现动态调整二值化阈值
笔记·opencv·学习
swan4162 小时前
SCAU期末笔记 - 计算机网络复习要点整理
服务器·笔记·计算机网络
爱编程的小吴2 小时前
【力扣练习题】55. 跳跃游戏
算法·leetcode
春风有信2 小时前
【学术写作】LaTeX基础:从概念理解到基础应用
经验分享·笔记·学习
橘颂TA2 小时前
【剑斩OFFER】算法的暴力美学——力扣 227 题:基本计算机Ⅱ
c++·算法·leetcode·职场和发展·结构于算法
菩提小狗2 小时前
sqlmap输入命令回车自动退出故障排查
笔记·安全·web安全
逑之2 小时前
C语言笔记9:指针
java·c语言·笔记