码迷,mamicode.com
首页 > 其他好文 > 详细

将矩阵中0元素所对应的行列都清零

时间:2015-08-17 17:28:12      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

技术分享编写一个算法,若M*N矩阵中某个元素为0,则将其所在的行与列清零。

技术分享

技术分享

void setZeros(int **matrix, int lrow, int lcol)
{
bool *row = new bool[lrow];
bool *column = new bool[lcol];
//记录值为0的元素所在的行索引和列索引
for (int i = 0; i < lrow; i++)
{
for (int j = 0; j < lcol; j++)
{
if (matrix[i][j] == 0)
{
row[i] = true;
column[j] = true;
}
}
}
//若行i或列j有个元素为0,则将arr[i][j]置为0 
for (int i = 0; i < lrow; i++)
{
for (int j = 0; j < lcol; j++)
{
if (row[i] || column[j])
{
matrix[i][j] = 0;
}
}
}
}

为了提高空间利用率,我们可以选用位向量替换bool数组。

版权声明:本文为博主原创文章,未经博主允许不得转载。

将矩阵中0元素所对应的行列都清零

标签:

原文地址:http://blog.csdn.net/wangfengfan1/article/details/47725689

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!