Skip to content

Commit 3d7433f

Browse files
committed
Update 221_Maximal_Square.java
1 parent 71acff7 commit 3d7433f

File tree

1 file changed

+8
-16
lines changed

1 file changed

+8
-16
lines changed
Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,18 @@
11
class Solution {
22
public int maximalSquare(char[][] matrix) {
3-
if (matrix == null || matrix.length == 0) {
4-
return 0;
5-
}
3+
int sideLen = 0;
64

7-
int result = 0;
8-
int[][] dp = new int[matrix.length][matrix[0].length];
5+
int[][] dp = new int[matrix.length + 1][matrix[0].length + 1];
96

10-
for (int i = 0; i < matrix.length; i++) {
11-
for (int j = 0; j < matrix[i].length; j++) {
12-
if (i == 0 || j == 0) {
13-
dp[i][j] = matrix[i][j] - '0';
14-
} else {
15-
if (matrix[i][j] == '1') {
16-
dp[i][j] = 1 + Math.min(dp[i - 1][j - 1], Math.min(dp[i - 1][j], dp[i][j - 1]));
17-
}
7+
for (int i = 1; i <= matrix.length; i++) {
8+
for (int j = 1; j <= matrix[0].length; j++) {
9+
if (matrix[i - 1][j - 1] == '1') {
10+
dp[i][j] = Math.min(dp[i - 1][j - 1], Math.min(dp[i - 1][j], dp[i][j - 1])) + 1;
11+
sideLen = Math.max(sideLen, dp[i][j]);
1812
}
19-
20-
result = Math.max(result, dp[i][j]);
2113
}
2214
}
2315

24-
return result * result;
16+
return sideLen * sideLen;
2517
}
2618
}

0 commit comments

Comments
 (0)