leetcode-221 最大正方形
leetcode-221 最大正方形
题目描述:
在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。
class Solution:
def maximalSquare(self, matrix: List[List[str]]) -> int:
if not matrix:
return 0
row = len(matrix)
col = len(matrix[0])
dp = [[0]*col for _ in range(row)]
for i in range(row):
dp[i][0] = int(matrix[i][0])
for j in range(col):
dp[0][j] = int(matrix[0][j])
for i in range(1,row):
for j in range(1,col):
if int(matrix[i][j]) == 1:
dp[i][j] = min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1]) + 1
return max(map(max,dp))**2
注: 在返回时,不能想当然的使用max(max(dp)),而应该使用(max(map(max,dp)))
相关问题:https://blog.csdn.net/linyunzju/article/details/7723730