题目:73. 矩阵置零
思路:
借助第一行和第一列来存储某行、列是否需要置零。
好累哦,就这样吧,具体看代码。最近都不想刷题了,,,烦烦烦~
代码:
class Solution { public void setZeroes(int[][] matrix) { boolean flagcol = false; boolean flagrow = false; // 判断第一行和第一列需不需要全部置零 int row = matrix.length; int col = matrix[0].length; for (int i = 0; i < col; i++) { if (matrix[0][i] == 0) { flagrow = true; break; } } for (int i = 0; i < row; i++) { if (matrix[i][0] == 0) { flagcol = true; break; } } // 借助第一行和第一列来存储某行、列是否需要置零 for (int i = 1; i < row; i++) { for (int j = 1; j < col; j ++) { if (matrix[i][j] == 0) { matrix[i][0] = 0; matrix[0][j] = 0; } } } // 置零 for (int i = 1; i < row; i++) { for (int j = 1; j < col; j ++) { if (matrix[i][0] == 0 || matrix[0][j] == 0) { matrix[i][j] = 0; } } } // 对第一行和第一列置零 if (flagcol) { for (int i = 0; i < row; i++) { matrix[i][0] = 0; } } if (flagrow) { for (int i = 0; i < col; i++) { matrix[0][i] = 0; } } } }