LeetCode每日一题——矩阵置0

题目要求:

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

示例 1:

复制代码
输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]

示例 2:

复制代码
输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]

代码实现:

void setZeroes(int** matrix, int matrixSize, int* matrixColSize) {

int m = matrixSize;//获取行数

int n = matrixColSize[0];//获取列数

int row[m],col[n];//用于标记0所在的行和列

memset(row, 0,sizeof(row));//初始化行数组中元素为0

memset(col, 0, sizeof(col));//初始化列数组中元素为0

for(int i = 0; i < m; i++)

{

for(int j = 0; j < n; j++)

{

if(!matrix[i][j])//!matrix[i][j]相当于matrix[i][j] == 0

{

row[i] = col[j] = true;//标记0所在的行和列

}

}

}

for(int i = 0; i < m; i++)

{

for(int j = 0; j < n; j++)

{

if(row[i] || col[j])//筛选出0所在的行和列

{

matrix[i][j] = 0;//让0所在行和列都为0

}

}

}

}

作者:力扣官方题解

来源:力扣(LeetCode)

坚持编程,我一直在路上!

相关推荐
努力学算法的蒟蒻19 分钟前
day35(12.16)——leetcode面试经典150
算法·leetcode·面试
cccc来财25 分钟前
角点检测算法:Harris 和 FAST 方法
算法·计算机视觉·特征提取
风中月隐31 分钟前
C语言中以坐标的方式图解“字母金字塔”的绘制
c语言·开发语言·算法·字母金子塔·坐标图解法
q_302381955632 分钟前
告别“笨重”检测!VA-YOLO算法让疲劳驾驶识别更轻更快更准
算法·yolo
松涛和鸣1 小时前
DAY32 Linux Thread Programming
linux·运维·数据库·算法·list
LYFlied1 小时前
【每日算法】LeetCode 234. 回文链表详解
算法·leetcode·链表
NeDon1 小时前
[OJ]数据结构:移除链表元素
c语言·数据结构·算法·链表
刃神太酷啦1 小时前
C++ list 容器全解析:从构造到模拟实现的深度探索----《Hello C++ Wrold!》(16)--(C/C++)
java·c语言·c++·qt·算法·leetcode·list
Herbert_hwt1 小时前
C语言结构体详解:从定义到实战应用
c语言
承渊政道1 小时前
一文彻底搞清楚链表算法实战大揭秘和双向链表实现
c语言·数据结构·算法·leetcode·链表·visual studio