Skip to content

Commit 9e2ad10

Browse files
committed
最大正方形
1 parent 9a60a68 commit 9e2ad10

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

maximal_square.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# -*- coding: utf-8 -*-
2+
3+
class Solution:
4+
#param matrix: a matrix of 0 and 1
5+
#return: an integer
6+
def maxSquare(self, matrix):
7+
# write your code here
8+
'''
9+
i - 1, j - 1, i - 1, j
10+
i, j - 1, i, j
11+
[i, j]所属正方形的边长由[i - 1, j - 1], [i - 1, j]和[i, j - 1]共同决定。
12+
想不通自己画图比划一下。
13+
'''
14+
if not matrix:
15+
return 0
16+
rows = len(matrix)
17+
cols = len(matrix[0])
18+
dp = [[0] * cols for i in xrange(rows)]
19+
width = 0
20+
for i in xrange(rows):
21+
for j in xrange(cols):
22+
dp[i][j] = matrix[i][j]
23+
if i and j and dp[i][j]:
24+
dp[i][j] = min(dp[i - 1][j - 1], dp[i - 1][j], dp[i][j - 1]) + 1
25+
width = max(dp[i][j], width)
26+
return width * width

0 commit comments

Comments
 (0)