73. 矩阵置零
题目描述
代码实现
分析:
代码:
class Solution {
public void setZeroes(int[][] matrix) {
int m = matrix.length;
int n = matrix[0].length;
System.out.print(m);
boolean r0 = false;
boolean c0 = false;
// 记录首行是否需要清零
for (int i = 0; i < n; i++){
if (matrix[0][i] == 0){
r0 = true;
break;
}
}
// 记录首列是否需要清零
for (int i = 0; i < m; i++){
if (matrix[i][0] == 0){
c0 = true;
break;
}
}
// 如果发现零,将需要置零的信息存储到该行的「最左方」和「最上方」的格子内
for (int i = 1; i < m; i++){
for (int j = 1; j < n; j++){
if(matrix[i][j]==0){
matrix[i][0] = matrix[0][j] = 0;
}
}
}
// 根据刚刚记录在「最左方」和「最上方」格子内的置零信息,进行「非首行首列」置零
for (int i = 1; i < m; i++){
if(matrix[i][0] == 0) Arrays.fill(matrix[i], 0);
}
for(int j = 1; j < n; j++){
if(matrix[0][j] == 0){
for(int i =1; i < m; i++){
matrix[i][j] = 0;
}
}
}
// 根据最开始记录的情况,首行首列置零
if(r0){
Arrays.fill(matrix[0], 0);
}
if(c0){
for(int i = 0; i < m; i++){
matrix[i][0] =0;
}
}
}
}
题目
题目描述
代码实现
分析:
代码:
题目
题目描述
代码实现
分析:
代码:
题目
题目描述
代码实现
分析:
代码:
标签:道题,06,matrix,int,代码,++,hot100,题目,c0
From: https://www.cnblogs.com/chendsome/p/18588241