leetcode 接雨水2_雨水口连接管

leetcode 接雨水2_雨水口连接管题目链接给定 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/168745.html原文链接:https://javaforall.net

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


相关推荐

  • Java8 LocalDateTime获取时间戳(毫秒/秒)、LocalDateTime与String互转、Date与LocalDateTime互转

    Java8 LocalDateTime获取时间戳(毫秒/秒)、LocalDateTime与String互转、Date与LocalDateTime互转本文目前提供:LocalDateTime获取时间戳(毫秒/秒)、LocalDateTime与String互转、Date与LocalDateTime互转文中都使用的时区都是东8区,也就是北京时间。这是为了防止服务器设置时区错误时导致时间不对,如果您是其他时区,请自行修改1.LocalDateTime获取毫秒数​//获取秒数Longsecond=LocalDateT…

    2022年4月30日
    54
  • mysql 字符串动态拼接_mysql中的字符串的拼接「建议收藏」

    mysql 字符串动态拼接_mysql中的字符串的拼接「建议收藏」字符串的拼接1,Mysql在Java、C#等编程语言中字符串的拼接可以通过加号“+”来实现,比如:”1″+”3″、”a”+”b”。在MYSQL中也可以使用加号“+”来连接两个字符串,比如下面的SQL:Sql代码SELECT’12’+’33’,FAge+’1’FROMT_Employee执行结果Sql代码’12’+’33’FAge+’1’4526452945244526…

    2022年9月26日
    2
  • PL/SQL 游标变量

    PL/SQL 游标变量

    2021年8月19日
    72
  • 详解数据仓库和数据库的区别「建议收藏」

    详解数据仓库和数据库的区别「建议收藏」一、数据仓库什么是数据仓库?数据仓库(DataWarehouse),可简写为DW或DWH,数据仓库,是为了企业所有级别的决策制定计划过程,提供所有类型数据类型的战略集合。它出于分析性报告和决策支持的目的而创建。为需要业务智能的企业,为需要指导业务流程改进、监视时间,成本,质量以及控制等;数据仓库能干什么?(举几个栗子)年度销售目标的制定,需要根据以往的历史报表进行决策,不能随便…

    2025年8月25日
    2
  • Java锁详解[通俗易懂]

    Java锁详解[通俗易懂]文章目录什么是锁锁的实现方式锁涉及的几个重要概念类锁和对象锁(重要)synchronized实现原理什么是锁计算机还是单线程的时代,下面代码中的count,始终只会被一个线程累加,调用addOne()10次,count的值一定就累加了10。publicclassTest{//计数器privateIntegercount=0;//累加…

    2022年7月8日
    22

发表回复

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

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