标签:while 存储 多少 计算 res rap ret += 个数
题目:给定一个数组,每个数表示宽度为 1 的柱子的高度,计算按此排列的柱子,下雨之后能接多少雨水。
def trap(arrys):
res = 0
l,r = 0,len(arrys)-1
max_left,max_right = 0,0
while l<r:
max_left = max(arrys[l],max_left)
max_right = max(arrys[r],max_right)
if max_left<max_right:
res+=max_left-arrys[l]
l+=1
else:
res+=max_right-arrys[r]
r-=1
return res
注:采用双指针从前后开始遍历,并且需要分别存储左右最大值。依次计算每列所能存储的雨水的量,然后累加即可。
标签:while 存储 多少 计算 res rap ret += 个数
原文地址:https://www.cnblogs.com/kingshine007/p/11519077.html