1,牛客网
给定一个由0和1组成的2维矩阵,返回该矩阵中最大的由1组成的正方形的面积(动态规划)
a=input().strip('[[').strip(']]').split('],[')
row=len(a)
matrix=[]
for i in range(row):
matrix.append(list(map(int,a[i].split(','))))
col=len(matrix[0])
dp=[[0 for i in range(col)] for j in range(row)]
for i in range(row):
for j in range(col):
if i==0 or j==0:
dp[i][j]=matrix[i][j]
elif matrix[i][j]==0:
dp[i][j]=0
else:
dp[i][j]=min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1])+1
tmp=0
for i in range(row):
tmp=max(tmp,max(dp[i]))
print(tmp**2)