力扣-73.矩阵置零
题目描述
73.矩阵置零
class Solution {public void setZeroes(int[][] matrix) {int firstRow = 0;int firstCol = 0;int m = matrix.length;int n = matrix[0].length;for (int i = 0; i < n; i++) {if (matrix[0][i] == 0) {firstRow = 1;}}for (int i = 0; i < m; i++) {if (matrix[i][0] == 0) {firstCol = 1;}}for (int i = 1; i < m; i++) {for (int j = 1; j < n; j++) {if (matrix[i][j] == 0) {matrix[0][j] = 0;matrix[i][0] = 0;}}}for (int i = 1; i < n; i++) {if (matrix[0][i] == 0) {for (int j = 1; j < m; j++) {matrix[j][i] = 0;}}}for (int i = 1; i < m; i++) {if (matrix[i][0] == 0) {for (int j = 1; j < n; j++) {matrix[i][j] = 0;}}}if (firstRow == 1) {for (int i = 0; i < n; i++) {matrix[0][i] = 0;}}if (firstCol == 1) {for (int i = 0; i < m; i++) {matrix[i][0] = 0;}}}
}
小结:用两个额外变量来标记首行和首列是否有0,用首行和首列记录该行/列是否有0。