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

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

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

相关推荐
柳杉2 分钟前
Codex + 可视化大屏工作流实践:15 个行业场景的设计产出合集
前端·openai·数据可视化
@#¥&~是乱码鱼啦5 分钟前
ArkWeb开发手记05|SPA单页H5适配、自定义历史栈与全局状态同步
前端·harmonyos
peter67686 分钟前
vue学习小结
前端·vue.js·学习
七仔啊12 分钟前
数字孪生大屏设计器
前端
知野小兔13 分钟前
JavaScript 数组方法大全(超详细整理)
开发语言·前端·javascript
火眼金睛记单词17 分钟前
零基础成人重拾英语:第一个月的30天行动地图
前端·经验分享·学习·小程序
Omics Pro19 分钟前
反式感知虚拟细胞!超越线性序列
数据库·人工智能·算法·机器学习·自然语言处理
-dzk-22 分钟前
【动态规划】LC 152.乘积最大子数组
算法·动态规划
积流成海24 分钟前
一致性哈希原理与实现:分布式系统负载均衡
算法·负载均衡·哈希算法·哈希函数·盘子工具站
ljt272496066132 分钟前
Vue笔记(十二)--mitt
前端·笔记