您的位置:首页 > 职场人生

98_leetcode_set Matrix Zeroes

2014-06-23 10:55 519 查看
Given a m x n matrix,
if an element is 0, set its entire row and column to 0. Do it in place

1:得到需要置为0的列和行;2:将相应的列和行置为0

void setZeroes(vector<vector<int> > &matrix)
{
if(matrix.size() == 0 || matrix[0].size() == 0)
{
return;
}

int rows = (int)matrix.size();
int columns = (int)matrix[0].size();

vector<bool> rowsArray(rows, false);
vector<bool> columnsArray(columns, false);

for(int i = 0; i < rows; i++)
{
for(int j = 0; j < columns; j++)
{
if(matrix[i][j] == 0)
{
rowsArray[i] = true;
columnsArray[j] = true;
}
}
}

for(int i = 0; i < rows; i++)
{
if(rowsArray[i] == true)
{
for(int j = 0; j < columns; j++)
{
matrix[i][j] = 0;
}
}
}

for(int j = 0; j < columns; j++)
{
if(columnsArray[j] == true)
{
for(int i = 0; i < rows; i++)
{
matrix[i][j] = 0;
}
}
}

return;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息