您的位置:首页 > 其它

Set Matrix Zeros

2015-07-08 22:38 330 查看
Question:

Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.

Solution:

class Solution {
public:
void setZeroes(vector<vector<int>>& matrix) {
int m=matrix.size();
int n=matrix[0].size();
vector<int> a;
for(int i=0;i<matrix.size();i++)
for(int j=0;j<matrix[i].size();j++)
a.push_back(matrix[i][j]);
vector<int> b(a);
vector<int>::iterator iter=b.begin();
for(int i=0;i<a.size();i++)
{
if(0==a[i])
{
for(int j=0;j<n;j++)
{
*(iter+(i/n)*n+j)=0;
}
for(int k=0;k<m;k++)
{
*(iter+k*n+i%n)=0;
}
}
}
vector< vector<int> >matrix_temp;
vector<int> p;
for(int i=0;i<b.size();i++)
{
p.push_back(b[i]);
if(i%n==n-1)
{
matrix_temp.push_back(p);
p.erase(p.begin(),p.end());
}
}
matrix =matrix_temp;
}
};


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