主页 > 其他  > 

力扣题库第7题:接雨水


题目内容:

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

示例 :

输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 

答案: # coding:utf-8 # 时间:2024/3/10 17:33 # Pythonit教程网(blog.pythonit.cn) # Python全栈视频课件获取:www.dqu.cc # 加速高防cdn:woaiyundun.cn def trap(height):     if not height:         return 0     left, right = 0, len(height) - 1     left_max, right_max = height[left], height[right]     water = 0     while left < right:         # 如果左边的高度小于右边的高度         # 则更新左边最大高度,并计算当前位置能接的雨水量         if height[left] < height[right]:             if height[left] > left_max:                 left_max = height[left]             else:                 water += left_max - height[left]             left += 1             # 如果右边的高度小于等于左边的高度         # 则更新右边最大高度,并计算当前位置能接的雨水量         else:             if height[right] > right_max:                 right_max = height[right]             else:                 water += right_max - height[right]             right -= 1     return water height = [0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1] print(trap(height))  # 输出:6

标签:

力扣题库第7题:接雨水由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“力扣题库第7题:接雨水