【Leetcode】【困难】42.接雨水

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

参考视频 

【LeetCode 每日一题】42. 接雨水 | 手写图解版思路 + 代码讲解_哔哩哔哩_bilibili文字版题解见:https://blog.lichangao.com/daily_practice/leetcode/overview/question_summary.html, 视频播放量 2718、弹幕量 4、点赞数 49、投硬币枚数 21、收藏人数 26、转发人数 2, 视频作者 睡不醒的鲤鱼, 作者简介 记忆之中没有辛苦,只有遗憾。,相关视频:大吴语!竟然有脸说这是教书育人? 计算机系大学老师声称自己几年没有编程了! 真是醉了!!,没有电脑一个手机也能学编程。我学编程的时候怎么没有这个学习宝藏自律打卡学习,刷题背题模式互切,满满的都是干货, 错过的会失去一个亿!,同样是学计算机,中国学生相比于美国学生为什么差距这么大?看完我傻眼了......,为什么祖传的“屎山”代码不能乱动?看完这个视频你就懂了!,自学网络安全近一年,第一份工作成功拿到9K!上岸经验分享!!!,小米首席架构师:程序员如何提高编程水平,腾讯高管对猎头说:我已经40岁了,没价值就删除好友吧!,大一听不懂C语言?给我两分钟,让你拉开95%计算机学生的差距!,专科大学生与985大学生的区别,给大专生的忠告!字字诛心,都是血泪教训!希望每个专科生都能找到自己的活法!,Navicat安装与激活巨详细教程(附安装包+激活包),只需4分钟新手也能快速入门!一键激活,永久使用哦~icon-default.png?t=N7T8https://www.bilibili.com/video/BV1ym4y1Z7RL/?spm_id_from=333.788&vd_source=a6159bc9b4989839c4faea97a2a136de

正确思路 

        不管中间隔多少柱子,只看左右两侧的最高柱子,接水量只取决于左右两侧最高柱子中较矮的那根。

        接水量=左右两侧较矮的柱子 - 本身高度

class Solution {
    public int trap(int[] height) {
        // 初始化左右指针
        int l = 0, r = height.length - 1;
        // 初始化左右两侧最大值
        int lmax = 0, rmax = 0;
        // 初始化接水量
        int ans = 0;

        // 双指针循环
        while(l < r) {
            // 计算左右两侧最大值
            lmax = Math.max(lmax, height[l]);
            rmax = Math.max(rmax, height[r]);

            // 左右两侧较小
            // 左侧较小,如左图
            if(lmax < rmax) {
                ans += lmax - height[l];
                l++;
            }
            // 右侧较小,如右图
            else {
                ans += rmax - height[r];
                r--;
            }
        }
        return ans;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值