链接: https://oj.leetcode.com/problems/set-matrix-zeroes/
把矩阵中的零全部投影到第一行和第一列..
第一行和第一列中的零要单独考虑
class Solution
{
public:
void setZeroes(vector<vector<int> > &matrix)
{
bool row=false,col=false;
for(int i=0;i<matrix[0].size();i++)
if(matrix[0][i]==0)
{
row=true;
break;
}
for(int i=0;i<matrix.size();i++)
if(matrix[i][0]==0)
{
col=true;
break;
}
for(int i=1;i<matrix.size();i++)
{
for(int j=1;j<matrix[i].size();j++)
{
if(matrix[i][j]==0)
{
matrix[i][0]=0;
matrix[0][j]=0;
}
}
}
for(int i=1;i<matrix.size();i++)
{
for(int j=1;j<matrix[i].size();j++)
{
if(matrix[i][0]==0||matrix[0][j]==0)
matrix[i][j]=0;
}
}
if(row)
for(int i=0;i<matrix[0].size();i++)
matrix[0][i]=0;
if(col)
for(int i=0;i<matrix.size();i++)
matrix[i][0]=0;
}
};
天下武功,唯快不破
浙公网安备 33010602011771号