編寫一種算法,若M × N矩陣中某個元素為0,則將其所在的行與列清零
代碼一思路:
第一次遍歷時記錄,用兩個布爾類型數組標記行和列中是否有0元素;
第二次遍歷時置零
class Solution {public void setZeroes(int[][] matrix) {int m = matrix.length;int n = matrix[0].length;boolean[] row = new boolean[m];boolean[] col = new boolean[n];for(int i = 0;i<m;i++){for(int j = 0;j<n;j++)if(matrix[i][j] == 0){//記錄row[i] = true;col[j] = true;}}for(int i = 0;i<m;i++){for(int j = 0;j<n;j++)if(row[i]||col[j]){//置零matrix[i][j] = 0;}}}
}
1.不得不說,布爾類型用來標記具有天然優勢,因為標記位后來一般都要判斷是否符合某種條件,布爾類型直接代表true false,判斷很方便