Set Matrix Zeroes
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
建立一个temp来记录原始数组,不能设置为0的时候,改变其原始的数据。之后再进行循环赋值好了。
算法时间复杂度可以用记录的方法进行简化,然后将内部赋值的循环挪到外面来即可。
class Solution {
public:
void setZeroes(vector<vector<int> > &matrix) {
int m=matrix.size();
int n=matrix[0].size();
vector<vector<int> > temp;//vector的初始化,注意
temp.resize(m,vector<int>(n));
temp=matrix;
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(temp[i][j]==0)
{
for(int k=0;k<m;k++)
matrix[k][j]=0;
for(int s=0;s<n;s++)
matrix[i][s]=0;
}
}
}
}
};