This repository was archived by the owner on Sep 20, 2023. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +5
-4
lines changed
Algorithms/0221.maximal-square Expand file tree Collapse file tree 2 files changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -18,4 +18,4 @@ Credits:Special thanks to @Freezen for adding this problem and creating all test
18
18
19
19
## 解题思路
20
20
21
- 见程序注释
21
+ [[ 解题报告 ] LeetCode 221. Maximal Square ] ( http://zxi.mytechroad.com/blog/dynamic-programming/leetcode-221-maximal-square/ )
Original file line number Diff line number Diff line change @@ -10,22 +10,24 @@ func maximalSquare(matrix [][]byte) int {
10
10
return 0
11
11
}
12
12
13
+ maxEdge := 0
13
14
// dp[i][j] == 以 (i,j) 点为右下角点的符合题意的最大正方形的边长
15
+ // TODO: 由于 dp[i][j] 只与上,左上,左的数据有关,可以把 dp 压缩成一维的
14
16
dp := make ([][]int , m )
15
17
for i := range dp {
16
18
dp [i ] = make ([]int , n )
17
19
if matrix [i ][0 ] == '1' {
18
20
dp [i ][0 ] = 1
21
+ maxEdge = 1
19
22
}
20
23
}
21
24
for j := 1 ; j < n ; j ++ {
22
25
if matrix [0 ][j ] == '1' {
23
26
dp [0 ][j ] = 1
27
+ maxEdge = 1
24
28
}
25
29
}
26
30
27
- maxEdge := dp [0 ][0 ]
28
-
29
31
for i := 1 ; i < m ; i ++ {
30
32
for j := 1 ; j < n ; j ++ {
31
33
if matrix [i ][j ] == '1' {
@@ -37,7 +39,6 @@ func maximalSquare(matrix [][]byte) int {
37
39
dp [i ][j - 1 ],
38
40
),
39
41
)
40
-
41
42
maxEdge = max (maxEdge , dp [i ][j ])
42
43
}
43
44
}
You can’t perform that action at this time.
0 commit comments