-
class Solution { public: void setZeroes(vector<vector<int>>& matrix) { int row = matrix.size(); int col = matrix[0].size(); int i, j; int check[row + col] = {0}; for(i = 0; i < row; i++){ for(j = 0; j < col; j++){ if(matrix[i][j] == 0){ check[i] = 1; check[row + j] = 1; } } } for(i = 0; i < row; i++){ if(check[i]){ for(j = 0; j < col; j++){ matrix[i][j] = 0; } } } for(j = 0; j < col; j++){ if(check[row + j]){ for(i = 0; i < row; i++){ matrix[i][j] = 0; } } } } };
2.
class Solution {
public:
void setZeroes(vector<vector<int>>& matrix) {
int row = matrix.size();
int col = matrix[0].size();
if(row == 0 || col == 0){
return;
}
int i, j;
bool checkrow = false;
bool checkcol = false;
for(i = 0; i < row; i++){
for(j = 0; j < col; j++){
if(matrix[i][j] == 0){
matrix[i][0] = 0;
matrix[0][j] = 0;
if(i == 0)
checkrow = true;
if(j == 0)
checkcol = true;
}
}
}
for(i = 1; i < row; i++){
if(matrix[i][0] == 0){
for(j = 1; j < col; j++){
matrix[i][j] = 0;
}
}
}
for(j = 1; j < col; j++){
if(matrix[0][j] == 0){
for(i = 1; i < row; i++){
matrix[i][j] = 0;
}
}
}
if(checkrow){
for(i = 0; i < col; i++){
matrix[0][i] = 0;
}
}
if(checkcol){
for(i = 0; i < row; i++){
matrix[i][0] = 0;
}
}
}
};