题意:
如果矩阵中某个元素为0,则将该元素所在的行和列全部置为0。
思路:
简单模拟题。记录0的位置,再依次置为0。
代码如下:
void setZeroes(int** matrix, int matrixRowSize, int matrixColSize) {
int set_r[matrixRowSize],set_c[matrixColSize];
int i=0,j=0;
for(i=0;i<matrixRowSize;++i){
set_r[i]=1;
}
for(i=0;i<matrixColSize;++i){
set_c[i]=1;
}
for(i=0;i<matrixRowSize;++i){
for(j=0;j<matrixColSize;++j){
if(matrix[i][j]==0){
set_r[i]=0;
set_c[j]=0;
}
}
}
for(i=0;i<matrixRowSize;++i){
if(set_r[i]==0){
for(j=0;j<matrixColSize;++j){
matrix[i][j]=0;
}
}
}
for(i=0;i<matrixColSize;++i){
if(set_c[i]==0){
for(j=0;j<matrixRowSize;++j){
matrix[j][i]=0;
}
}
}
return;
}

本文介绍了一种简单的矩阵处理算法:当矩阵中的某元素为0时,将该元素所在行和列的所有元素置为0。文章提供了详细的实现思路及C语言代码示例。
2709

被折叠的 条评论
为什么被折叠?



