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

原文地址:https://www.cnblogs.com/curtisxiao/p/11221631.html