LeetCode Hot100 42.接雨水

题目描述

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

42. 接雨水 - 力扣(LeetCode)

思路

用左右两个指针从两头往中间走。在走的过程中,顺便记录下左边遇到的最高值 (lMax) 和右边遇到的最高值 (rMax)。

如果 lMax < rMax,那么对于左边指针 left 来说,它能接多少水只取决于 lMax (因为右边已经有一个比 lMax 更高的 rMax 在兜底了),这个时候就可以确定left所指坐标的积水量。

代码

java 复制代码
class Solution {
    public int trap(int[] height) {
        int ans = 0;
        int lmax = 0, rmax = 0;
        int l = 0, r = height.length - 1;
        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;
    }
}
相关推荐
机器人零零壹2 小时前
技术白皮书:iRobotCAM如何解决机器人激光切割应用中的核心难点,从CAD离线编程到双目视觉定位与轨迹自适应提升复杂空间曲线切割的精度、效率与柔性化水平
人工智能·算法
ZhengEnCi5 小时前
大模型的分类到底怎么分:从基础模型到推理模型、从通用到专用的完整图谱
算法
取名真是6 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
罗西的思考6 小时前
【轻量化复刻大模型 / KIMI K3】KDA 模块交互式演示
人工智能·算法·机器学习
nm_zfyjt8 小时前
信息流广告投放优化实践:线索成本评估模型与转化链路重构(家装建材案例)
算法·重构·内蒙古朋友圈广告服务商·内蒙古朋友圈获客
w_zero_one9 小时前
算法--构造
java·数据结构·算法
其实防守也摸鱼10 小时前
信创安全竞赛知识总结与题库
大数据·网络·人工智能·算法·安全·php
小超人诞生日记11 小时前
C++ 智能指针的使用及其原理详解
c++·算法
AiNightVision14 小时前
无人机夜视模块如何选择?——从参数指标到系统集成的完整选型指南
人工智能·算法·计算机视觉·车载系统·无人机·视频·智能硬件