额外使用一个boolean变量用来判断第一列是否为零。另外第一行除了第一个用来标记当前的列是否为零,第一列用来标记当前行是否标记为零
class Solution {
public void setZeroes(int\[\]\[\] matrix) {
boolean isAllZero = false;//判断第一列是否存在零
for(int i = 0;i<matrix.length;i++){//将记录所有应该置零的地方
for(int j = 0;j<matrix0.length;j++){
if(matrixij==0){
if(j==0){
isAllZero = true;
}else{
matrixi0 = 0;
matrix0j = 0;
}
}
}
}
for(int i = 1;i<matrix.length;i++){
for(int j = 1;j<matrix0.length;j++){
if(matrixi0==0||matrix0j==0){
matrixij = 0;
}
}
}
for(int i = 0;i<matrix0.length;i++){
if(matrix00==0){
matrix0i =0;
}
}
if(isAllZero){
for(int i = 0;i<matrix.length;i++){
matrixi0 =0;
}
}
}
}