矩阵置零
问题陈述
给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用**原地算法。**
代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| class Solution{ public void setZero(int[][] matrix){ int R=matrix.length; int C=matrix[0].length; Set<Integer> row=new HashSet<Integer>(); Set<Integer> col=new HashSet<Integer>(); for(int i=0;i<R;i++){ for(int j=0;j<C;j++){ if(matrix[i][j]==0){ row.add(i); col.add(j); } } } for(int i=0;i<R;i++){ for(int j=0;j<C;j++){ if(row.contains(i)||col.contains(j)){ matrix[i][j]=0; } } } } }
|