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

总结:

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

相关推荐
Swift社区1 小时前
LeetCode 421 - 数组中两个数的最大异或值
算法·leetcode·职场和发展
lkbhua莱克瓦241 小时前
Java基础——方法
java·开发语言·笔记·github·学习方法
p66666666682 小时前
STM32-bootloader引导程序跳转机制笔记
笔记·stm32·嵌入式硬件
智者知已应修善业3 小时前
【c语言蓝桥杯计算卡片题】2023-2-12
c语言·c++·经验分享·笔记·算法·蓝桥杯
Kuo-Teng4 小时前
LeetCode 206: Reverse Linked List
java·算法·leetcode·职场和发展
Elias不吃糖5 小时前
NebulaChat项目构建笔记
linux·c++·笔记·多线程
d111111111d5 小时前
STM32外设学习-串口数据包笔记-(程序)
笔记·stm32·单片机·嵌入式硬件·学习
弘毅 失败的 mian6 小时前
编译和链接
c语言·经验分享·笔记·编程入门
aramae7 小时前
MySQL数据库入门指南
android·数据库·经验分享·笔记·mysql
chenzhou__7 小时前
LinuxC语言文件i/o笔记(第十七天)
linux·c语言·笔记·学习