矩阵置零(中等)
可以用两个标记数组分别记录每一行和每一列是否有零出现。
首先遍历该数组一次,如果某个元素为 0,那么就将该元素所在的行和列所对应标记数组的位置置为 true。然后再次遍历该数组,用标记数组更新原数组。
class Solution {public void setZeroes(int[][] matrix) {int m=matrix.length;int n=matrix[0].length;boolean[] r=new boolean[m];boolean[] c=new boolean[n];for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(matrix[i][j]==0){r[i]=true;c[j]=true;}}}for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(r[i]||c[j]){matrix[i][j]=0;}}}}
}