LeetCode 73. 二维矩阵置0
原题链接
中等
作者:
大明湖的鱼
,
2021-03-21 09:57:27
,
所有人可见
,
阅读 308
空间复杂度$O(1)$
代码
class Solution {
public:
void setZeroes(vector<vector<int>>& matrix) {
int m = matrix.size();
if(m == 0 ) return ;
int n = matrix[0].size();
int col0 = 0 , row0= 0 ;
for(int i = 0 ; i< m ; i++){
for(int j = 0 ; j< n ; j++){
if(matrix[i][j] == 0){
if(i == 0) row0 = 1;
if(j == 0) col0 = 1;
matrix[i][0] = matrix[0][j] = 0;
}
}
}
for(int i = 1 ;i< m ;i++){
for(int j = 1 ; j < n ; j++){
if(matrix[i][0] ==0 || matrix[0][j] == 0){
matrix[i][j] = 0;
}
}
}
if(col0) {
for(int i = 0 ; i < m ; i++){
matrix[i][0] = 0 ;
}
}
if(row0){
for(int i = 0 ; i< n ;i++){
matrix[0][i] = 0;
}
}
}
};