双指针法,左侧更低则考虑左侧,右侧更低则考虑右侧
def trap(height):
left = 0
right = len(height)-1
left_max = 0
right_max = 0
current_water = 0
while left<=right:
if height[left]<=height[right]:
if height[left]>left_max:
left_max = height[left]
else:
current_water+=left_max-height[left]
left+=1
else:
if height[right]>right_max:
right_max = height[right]
else:
current_water+=right_max-height[right]
right-=1
return current_water