Skip to content
This repository was archived by the owner on Sep 20, 2023. It is now read-only.

Commit eb6253d

Browse files
aQuaaQua
aQua
authored and
aQua
committed
221 finish
1 parent 2d30273 commit eb6253d

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

Algorithms/0221.maximal-square/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ Credits:Special thanks to @Freezen for adding this problem and creating all test
1818

1919
## 解题思路
2020

21-
见程序注释
21+
[[解题报告] LeetCode 221. Maximal Square](http://zxi.mytechroad.com/blog/dynamic-programming/leetcode-221-maximal-square/)

Algorithms/0221.maximal-square/maximal-square.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,24 @@ func maximalSquare(matrix [][]byte) int {
1010
return 0
1111
}
1212

13+
maxEdge := 0
1314
// dp[i][j] == 以 (i,j) 点为右下角点的符合题意的最大正方形的边长
15+
// TODO: 由于 dp[i][j] 只与上,左上,左的数据有关,可以把 dp 压缩成一维的
1416
dp := make([][]int, m)
1517
for i := range dp {
1618
dp[i] = make([]int, n)
1719
if matrix[i][0] == '1' {
1820
dp[i][0] = 1
21+
maxEdge = 1
1922
}
2023
}
2124
for j := 1; j < n; j++ {
2225
if matrix[0][j] == '1' {
2326
dp[0][j] = 1
27+
maxEdge = 1
2428
}
2529
}
2630

27-
maxEdge := dp[0][0]
28-
2931
for i := 1; i < m; i++ {
3032
for j := 1; j < n; j++ {
3133
if matrix[i][j] == '1' {
@@ -37,7 +39,6 @@ func maximalSquare(matrix [][]byte) int {
3739
dp[i][j-1],
3840
),
3941
)
40-
4142
maxEdge = max(maxEdge, dp[i][j])
4243
}
4344
}

0 commit comments

Comments
 (0)