Leetcode 221. Maximal Square

时间:2023-03-09 07:09:20
Leetcode 221. Maximal Square

本题用brute force超时。可以用DP,也可以不用。

dp[i][j] 代表 以(i,j)为右下角正方形的边长。

 class Solution(object):
def maximalSquare(self, matrix):
"""
:type matrix: List[List[str]]
:rtype: int
"""
if not matrix:
return 0 m = len(matrix)
n = len(matrix[0])
res = 0
dp = [[0 for x in range(n)] for y in range(m)] for i in range(m):
if matrix[i][0] == '':
dp[i][0] = 1
res = 1 for j in range(n):
if matrix[0][j] == '':
dp[0][j] = 1
res = 1 for i in range(1,m):
for j in range(1,n):
if matrix[i][j] == '':
dp[i][j] = min(dp[i-1][j-1], min(dp[i-1][j],dp[i][j-1])) + 1
res = max(res, dp[i][j]) return res * res