题目:
在一个由 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