Leetcode221. 最大正方形——python求解

题目:
在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。

示例:
输入: 

1 0 1 0 0
1 0 1 1 1
1 1 1 1 1
1 0 0 1 0

输出: 4

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/maximal-square

python暴力求解

class Solution:
    def maximalSquare(self, matrix: List[List[str]]) -> int:
        if not matrix:
            return 0
        rows = len(matrix)
        columns = len(matrix[0])
        res = 0
        for i in range(rows):
            for j in range(columns):
                if matrix[i][j] == '1':
                    res = max(res, 1)
                    current = min(rows - i, columns - j)
                    for k in range(1, current):
                        flag = True
                        if matrix[i + k][j + k] == '0':
                            break
                        for m in range(k):
                            if matrix[i + k][j + m] == '0' or matrix[i + m][j + k] == '0':
                                flag = False
                                break
                        if flag:
                            res = max(res, k + 1)
                        else:
                            break
        return res**2

猜你喜欢

转载自blog.csdn.net/weixin_41729258/article/details/106003300