解题思路:这题思路就是用某个数据结构记录需要被置0的行和列,一般需要两次遍历。我采用集合的形式,最省空间的方法就是用数组的第一行和第一列来记录,但是要遍历一遍是是否第一行或第一列有0。
class Solution {public void setZeroes(int[][] matrix) {Set<Integer> row = new HashSet<>();Set<Integer> col = new HashSet<>();for(int i=0;i<matrix.length;i++){for(int j=0;j<matrix[i].length;j++){if(matrix[i][j]==0){row.add(i);col.add(j);}}}for(int i=0;i<matrix.length;i++){for(int j=0;j<matrix[i].length;j++){if(row.contains(i)||col.contains(j)){matrix[i][j]=0;}}} }
}