space O(m+n), time O(mn)
public void setZeroes_Set(int[][] matrix) {
if(matrix==null) return;
final int M=matrix.length, N=matrix[0].length;
Set<Integer> rowSet = new HashSet<>();
Set<Integer> colSet = new HashSet<>();
for(int i=0; i<M; i++){
for(int j=0; j<N; j++){
if(matrix[i][j]==0){
rowSet.add(i);
colSet.add(j);
}
}
}
for(int row : rowSet)
for(int j=0; j<N; j++)
matrix[row][j] = 0;
for(int col : colSet)
for(int i=0; i<M; i++)
matrix[i][col] = 0;
}
https://leetcode.com/problems/set-matrix-zeroes/description/