zoukankan      html  css  js  c++  java
  • 42. 接雨水

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

     

    上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。

    示例:

    输入: [0,1,0,2,1,0,1,3,2,1,2,1]
    输出: 6

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/trapping-rain-water

    双指针水题

    class Solution:
        def trap(self, height: List[int]) -> int:
            n=len(height)
            lmax=rmax=0
            l,r=0,n-1
            res=0
            while l<r:
                if height[l]<height[r]:
                    if height[l]>=lmax:
                        lmax=height[l]
                    else:
                        res+=lmax-height[l]
                    l+=1
                else:
                    if height[r]>=rmax:
                        rmax=height[r]
                    else:
                        res+=rmax-height[r]
                    r-=1
            return res
  • 相关阅读:
    wordpress建个人博客
    函数(一)
    字符串格式化
    集合运算
    基本数据类型(二)
    基本数据类型(一)
    分享一个下片神器
    Proxyee
    基本运算符
    条件语句和while循环
  • 原文地址:https://www.cnblogs.com/xxxsans/p/13374401.html
Copyright © 2011-2022 走看看