一、思路
此题要求原地置0,但我看了评论区很多人说没有必要,现在普遍时间优先于空间,所以采用了O(m+n)的空间复杂度做法
二、记忆
1.标记矩阵的思路
int y = matrix.length;
int x = matrix[0].length;
三、代码
public void setZeroes(int[][] matrix){
int y = matrix.length;
int x = matrix[0].length;
boolean[] row = new boolean[y];
boolean[] col = new boolean[x];
for(int i =0;i<y;i++){
for(int j= 0;j<x;j++){
if(matrix[i][j]==0){
for (int a=0;a<x;a++) {
row[i]=true;
col[j]=true;
}
}
}
}
for(int i =0;i<y;i++){
for(int j= 0;j<x;j++){
if(row[i] || col[j]){
matrix[i][j]=0;
}
}
}
}