码迷,mamicode.com
首页 > 其他好文 > 详细

42-蓄水池

时间:2019-09-14 16:48:55      阅读:86      评论:0      收藏:0      [点我收藏+]

标签: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

  注:采用双指针从前后开始遍历,并且需要分别存储左右最大值。依次计算每列所能存储的雨水的量,然后累加即可。

42-蓄水池

标签:while   存储   多少   计算   res   rap   ret   +=   个数   

原文地址:https://www.cnblogs.com/kingshine007/p/11519077.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!