1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| class Solution: def maximalSquare(self, matrix: List[List[str]]) -> int: m,n = len(matrix), len(matrix[0]) lst = [[0 for j in range(n)] for i in range(m)]
for i in range(m): lst[i][0] = int(matrix[i][0]) for i in range(n): lst[0][i] = int(matrix[0][i]) for i in range(1,m): for j in range(1,n): a,b,c = lst[i-1][j],lst[i][j-1],lst[i-1][j-1] if int(matrix[i][j]) == 0: lst[i][j] = 0 elif min(a,b,c) == 0: lst[i][j] = int(matrix[i][j]) elif min(a,b,c) < max(a,b,c): lst[i][j] = min(a,b,c)+1 else: lst[i][j] = a+1
bian = max(map(max,lst)) return bian*bian
|