题目: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;
}
}
}
}