from typing import List
class Solution:
def trap(self,height:List[int])->int:
n=len(height)
left_max=[0]*n
right_max=[0]*n
left_max[0]=height[0]
for i in range(1,n):
left_max[i]=max(left_max[i-1],height[i])
right_max[-1]=height[-1]
for j in range(n-2,-1,-1):
right_max[j]=max(right_max[j+1],height[j])
ans=0
for i in range(n):
ans+=min(left_max[i],right_max[i])-height[i]
return ans
难点:
1.理解接水量的计算逻辑 ------ 当前位置接水量 = min (左侧最大高度,右侧最大高度) - 当前高度