https://leetcode.com/problems/maximal-square/
class Solution:
def maximalSquare(self, matrix: List[List[str]]) -> int:
m = len(matrix)
n = len(matrix[0])
ans = 0
for i in range(m):
for j in range(n):
if i>0 and j>0:
vs = map(int, [matrix[i-1][j-1], matrix[i-1][j], matrix[i][j-1]])
else:
vs = [0]
v = int(matrix[i][j])
if v == 1:
v = max(min(vs) + 1, v)
ans = max(v, ans)
matrix[i][j] = v
return ans*ans