30,416
社区成员




class Solution:
def maximalSquare(self, matrix: List[List[str]]) -> int:
row = len(matrix)
col = len(matrix[0])
if row == 0 and col == 0:
return 0
else:
dp = [[0] * col for x in range(row)]
maxSide = 0
for i in range(row):
for j in range(col):
if matrix[i][j] == '1':
if i == 0 or j == 0:
dp[i][j] = 1
else:
dp[i][j] = min(dp[i - 1][j - 1], dp[i - 1][j], dp[i][j - 1]) + 1
maxSide = max(maxSide, dp[i][j])
return maxSide ** 2
class Solution:
def trap(self, height: List[int]) -> int:
n = len(height)
lmax = [height[0]] + [0] * (n - 1)
rmax = [0] * (n - 1) + [height[-1]]
N = 0
for i in range(1, n):
lmax[i] = max(lmax[i - 1],height[i])
for j in range(n - 2, -1, -1):
rmax[j] = max(rmax[j + 1],height[j])
for k in range(n):
N += min(rmax[k], lmax[k]) - height[k]
return N