给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。
输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]
C++
class Solution {
public:
void setZeroes(vector<vector<int>>& matrix) {
int rows=matrix.size();
int cols=matrix[0].size();
int first_row=0;
int first_col=0;
for( int i=0;i<rows;i++ ){
if( !matrix[i][0] ){
first_col=1;
}
}
for( int i=0;i<cols;i++ ){
if( !matrix[0][i] ){
first_row=1;
}
}
for( int i=1;i<rows;i++ ){
for( int j=1;j<cols;j++ ){
if( !matrix[i][j] ){
matrix[i][0]=matrix[0][j]=0;
}
}
}
for( int i=1;i<rows;i++ ){
for( int j=1