73.给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。
解法:
public void setZeroes(int[][] matrix) {
int row=matrix.length;//二维数组行的长度
int col=matrix[0].length;//二维数组列的长度
Set<Integer> rows=new HashSet<Integer>();
Set<Integer> cols=new HashSet<Integer>();
for(int i=0;i<row;i++){
for(int j=0;j<col;j++){
if(matrix[i][j]==0){//把为0的行和列存放在set中
rows.add(i);
cols.add(j);
}
}
}
for(int i=0;i<row;i++){
for(int j=0;j<col;j++){
if(rows.contains(i)||cols.contains(j)){
matrix[i][j] = 0;
}
}
}
}