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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Ubuntu 20.04 虚拟显示器且远程连接

    Ubuntu 20.04 虚拟显示器且远程连接一、配置方法1)安装软件通过终端安装虚拟显示器软件。$sudoapt-getinstallxserver-xorg-core-hwe-18.04$sudoapt-getinstallxserver-xorg-video-dummy2)添加配置文件在/usr/share/X11/xorg.conf.d/中添加xorg.conf文件。$sudovim/usr/share/X11/xorg.conf.d/xorg.confSection”Device”

    2022年8月21日
    12
  • 解决Typora官方版本图片显示bug

    解决Typora官方版本图片显示bug问题:win10,官网下载的typorawinx64版,就是不显示图片,并不是路径问题!不是偏好设置问题!就是图片无法加载!,网上搜了一下发现很多小伙伴也遇到了这个问题;个人觉得这应该就是0.10版本的bug解决:换了一下0.9版本的,完美解决希望对你有所帮助!0.9版本的安装包pan链接:https://pan.baidu.com/s/1InBp08xV1DcOyiV9Ic65qQ提取码:1234复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V3的分享…

    2022年5月12日
    39
  • git 回滚到指定版本_git回滚多了怎么办

    git 回滚到指定版本_git回滚多了怎么办我们在GIT操作项目时,往往会遇到很多需要回滚的代码。我们可以回滚到任意之前的版本,case如下:1.首先找到你需要回滚的版本号,可以通过日志查看命令行:gitlog-32.选择上图红色箭头执行的commit版本号,第一个时最后提交的,我们回滚到第二个commit:f3eb8f9df34dc6ba47e477e05c8772a62d653fbb命令行:gitr

    2025年7月29日
    0
  • docker容器端口冲突_docker web管理工具

    docker容器端口冲突_docker web管理工具COMMAND_FAILED:’/sbin/iptables-tnat-A Docker -ptcp-d0/0–dport8111-jDNAT–to-destination172.17.0.6:8111!-idocker0’failed:iptables:Nochain/target/matchbythatname.pk

    2022年8月31日
    3
  • 移动端开发流程[通俗易懂]

    移动端开发流程[通俗易懂]一、确定项目技术栈vue2.0+vue-cli3/4+vue-router+axios+vuex+vant+rem+sass+webpack二、搭建推荐使用yarnyarn,npm(cnpm)包管理工具yarnaddaxios-Scnpminstallaxios-S-S:–save-dev生产环境的依赖(dependencies)-D:–dev开发环境的依赖(devDependencies)从0开始搭建首先我们要创建一

    2022年6月24日
    26
  • minipcie网卡接口_开mini的女人特点

    minipcie网卡接口_开mini的女人特点miniPCIe接口CAN卡及其使用特点

    2022年9月7日
    0

发表回复

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

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