力扣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 

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

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

相关推荐
糯米团子7491 小时前
react速通-2
前端·react.js·前端框架
心连欣2 小时前
从静态页面到动态交互:DOM操作的核心API解析
前端·javascript·api
AI科技星2 小时前
精细结构常数α的几何本源:从第一性原理的求导证明、量纲分析与全域验证
算法·机器学习·数学建模·数据挖掘·量子计算
橙某人2 小时前
SSR页面上的按钮点不了?Nuxt 懒加载水合揭秘💧
前端·vue.js·nuxt.js
6Hzlia2 小时前
【Hot 100 刷题计划】 LeetCode 287. 寻找重复数 | C++ 数组判环 (快慢指针终极解法)
c++·算法·leetcode
MegaDataFlowers2 小时前
26.删除有序数组中的重复项
算法
PursuitofHappiness2 小时前
2 tree-cli 的使用方法
前端
不做超级小白2 小时前
把图片压小,但不糊:reduceUrImgs项目关键点拆解
前端·开源·node.js
耀耀切克闹灬2 小时前
Eruda 移动端调试工具使用指南
前端