42. Trapping Rain Water
solution
# 纵向按列计算,每一列计算
class Solution:
def trap(self, height: List[int]) -> int:
max_left = [height[0]] * len(height)
for i in range(1, len(height)):
max_left[i] = max(max_left[i-1], height[i])
max_right = [height[-1]] * len(height)
for i in range(len(height)-2, -1, -1):
max_right[i] = max(max_right[i+1], height[i])
res = 0
for i in range(len(height)):
res += min(max_right[i], max_left[i]) - height[i]
return resfollow up
Last updated