给定一个 m x n
的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。
思路一:记录行列值
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文章来源:https://www.toymoban.com/news/detail-644752.html
总结:
本题考察矩阵的应用,直接暴力解决即可。文章来源地址https://www.toymoban.com/news/detail-644752.html
到了这里,关于leetcode做题笔记73矩阵置零的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!