力扣42接雨水

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

python 复制代码
class Solution(object):
    def trap(self, height):
        # 初始化双指针
        left = 0
        right = len(height) - 1
        # 初始化左边和右边的最大高度
        left_max = right_max = 0
        res = 0
        while left < right:
            if height[left] < height[right]:
                # 左边更小,水量由左边决定
                if height[left] >= left_max:
                    # 更新左边的最大高度
                    left_max = height[left]
                else:
                    res += left_max - height[left]
                left += 1
            else:
                # 右边更小,水量由右边决定
                if height[right] >= right_max:
                    # 更新右边的最大高度
                    right_max = height[right]
                else:
                    res += right_max - height[right]
                right -= 1
        return res 

需要明确怎么才能存不住水:取决于哪边的水高更小,水量就由哪边决定。

那如何计算水量就需要通过最大高度-当前的水高,如果当前水高更高,就需要更新最大高度。

相关推荐
badhope3381 小时前
当所有AI都在抄同一份作业:前端模板的趋同、困局与破局
前端·ai·ai编程·前端开发·tailwind·ui设计
光影少年2 小时前
RN的Fabric 渲染流程
运维·前端·javascript·react native·react.js·fabric
__zRainy__2 小时前
React开始:直接在网站中使用React.js
前端·react.js·前端框架
营养充电站3 小时前
KMP全栈开发:从Android到AI Agent的技术演进与实践
人工智能·算法·docker·jupyter
用户059540174463 小时前
大模型长记忆评测踩坑实录:2000条错位记忆,让我排查了整整3小时
前端·css
码林鼠3 小时前
webpack的基本配置
前端·webpack·node.js
技术小黑3 小时前
RNN算法实战系列05 | 天气预测
人工智能·rnn·算法
用户938515635074 小时前
React Router 进阶:路由守卫、登录鉴权与状态传递
前端·javascript·全栈
kyriewen4 小时前
我重写了自己用了两年的防抖节流Hook——发现里面藏着3个隐藏bug
前端·javascript·面试