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

总结:

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

相关推荐
52Hz11821 小时前
力扣24.两两交换链表中的节点、25.K个一组反转链表
算法·leetcode·链表
老鼠只爱大米21 小时前
LeetCode经典算法面试题 #160:相交链表(双指针法、长度差法等多种方法详细解析)
算法·leetcode·链表·双指针·相交链表·长度差法
老鼠只爱大米1 天前
LeetCode经典算法面试题 #84:柱状图中最大的矩形(单调栈、分治法等四种方法详细解析)
算法·leetcode·动态规划·单调栈·分治法·柱状图最大矩形
zhangrelay1 天前
ROS云课三分钟-cmake默认版本和升级-260120
笔记·学习
重生之后端学习1 天前
19. 删除链表的倒数第 N 个结点
java·数据结构·算法·leetcode·职场和发展
lkbhua莱克瓦241 天前
JavaScript核心语法
开发语言·前端·javascript·笔记·html·ecmascript·javaweb
SmartBrain1 天前
Agent 知识总结
服务器·数据库·笔记
鹿角片ljp1 天前
力扣14.最长公共前缀-纵向扫描法
java·算法·leetcode
Remember_9931 天前
【数据结构】深入理解优先级队列与堆:从原理到应用
java·数据结构·算法·spring·leetcode·maven·哈希算法
杨浦老苏1 天前
离线优先的自托管笔记应用Anchor
笔记·docker·群晖