您当前的位置: 首页 >  Python

Better Bench

暂无认证

  • 2浏览

    0关注

    695博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Leetcode刷题Python】42. 接雨水

Better Bench 发布时间:2022-05-23 21:18:01 ,浏览量:2

1 题目

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

在这里插入图片描述

2 解析

(1)方法一:栈 将墙的高度入栈,当新元素小于栈顶元素,就入栈,反之就出栈,并计算凹槽内的长和宽。最后将每个长方形面积求和。

注意:凹槽的高度是由 min(凹槽左边高度, 凹槽右边高度) - 凹槽底部高度 来计算的。如下图的是左边的2号柱子的高度建议1号柱子的高度。 请添加图片描述 凹槽的宽度是由凹槽右边的下标 – 凹槽左边的下标 – 1(因为只求中间宽度)来计算的。 请添加图片描述

3 Python实现
class Solution:
    def trap(sel, height: List[int]) -> int:
        stack = []
        result = 0
        for i in range(len(height)):
            if not stack:
                stack.append(i)
            elif height[i]            
关注
打赏
1665674626
查看更多评论
0.0407s