题目链接:https://leetcode.cn/problems/maximal-square/
难度:中等

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

题解

  1. class Solution:
  2. def maximalSquare(self, matrix: List[List[str]]) -> int:
  3. m, n = len(matrix), len(matrix[0])
  4. # r[i][j]代表以matrix[i-1][j-1]为右下角的最大正方形。
  5. r = [[0] * (n+1) for _ in range(m+1)]
  6. ret = 0
  7. for i in range(1, m+1):
  8. for j in range(1, n+1):
  9. if matrix[i-1][j-1] == '1':
  10. r[i][j] = min(r[i-1][j], r[i][j-1], r[i-1][j-1]) + 1
  11. ret = max(ret, r[i][j])
  12. return ret * ret