leetcode 接雨水2_code42

leetcode 接雨水2_code42题目链接给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例 2:输入:height = [4,2,0,3,2,5]输出:9 提示:n == height.length0 <= n &lt

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

题目链接

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

示例 1:
在这里插入图片描述

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

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

输入:height = [4,2,0,3,2,5]
输出:9
 

提示:

n == height.length
0 <= n <= 3 * 104
0 <= height[i] <= 105

题解
单调栈

class Solution { 
   
public:
    int trap(vector<int>& height) { 
   
        stack<int>stk;
        int res = 0;
        for(int i = 0;i < height.size();i ++){ 
   
            int pre = 0;
            while(!stk.empty() && height[stk.top()] <= height[i]){ 
   
                int t = stk.top();
                stk.pop();
                res += (height[t] - pre) * (i - t - 1);
                pre = height[t];
            }
            if(!stk.empty())res += (height[i] - pre) * (i - stk.top() - 1);
            stk.push(i);
        }
        return res;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168996.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js中splice方法_js截取字符串指定字符之后的部分

    js中splice方法_js截取字符串指定字符之后的部分参考:http://www.w3school.com.cn/jsref/jsref_splice.asp如果从arrayObject中删除了元素,则返回的是含有被删除的元素的数组。 vara=[1,2,3];a=a.splice(2,1);//这样写就错了a.splice(2,1);//正确…

    2025年12月8日
    4
  • Java基础知识学习笔记-12.1(待续)

    Java基础知识学习笔记-12.1(待续)

    2021年10月6日
    46
  • python代码情话_python怎么运行代码

    python代码情话_python怎么运行代码做微信聊天机器人,实现步骤:1.获取微信的使用权,即python脚本能控制微信收发信息。2.python脚本收到聊天信息后,要对该信息进行处理,返回机器人的回应信息。我这里有一套Python从入门到精通的全套资料免费送给大家,但是要加我的Python学习Q群:808713721才可以免费领取,因为我在里面会私发给大家。简易版代码fromwxpyimport*#apikey在http://www.t…

    2025年12月7日
    9
  • Python中字符串String去除出换行符(\n,\r)和空格的问题「建议收藏」

    Python中字符串String去除出换行符(\n,\r)和空格的问题「建议收藏」Python中字符串String去除出换行符和空格的问题(\n,\r)在Python的编写过程中,获取到的字符串进场存在不明原因的换行和空格,如何整合成一个单句,成为问题。方法:一、去除空格“·”代表的为空格  strip()"···xyz···".strip()#returns"xyz""···xyz···".lstrip()…

    2022年5月27日
    150
  • c语言中按位异或运算_c语言按位与怎么算

    c语言中按位异或运算_c语言按位与怎么算按位与运算符:&语法expression&expression备注表达式可以是其他“与”表达式,或(遵循下面所述的类型限制)相等表达式、关系表达式、加法表达式、乘法表达式、指向成员的指针表达式、强制转换表达式、一元表达式、后缀表达式或主表达式。按位“与”运算符(&)会将第一操作数的每一位与第二操作数的相应位进行比较。如果两个位均为1,则对应的结果位将设置为1

    2022年10月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号