42. 接雨水

简介: 42. 接雨水

前言

给定 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 个单位的雨水(蓝色部分表示雨水)。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/trapping-rain-water
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路

在这里插入图片描述

0位置最左20位置最右是不可能留下水的
在这里插入图片描述19位置的最大高度假设6,要结算算水量
需要求6的左边,右边部分的max,以13做瓶颈,
因为6它的左边这么多最大值还没看过,但它的最大值是17,恐怕它真实的左边最大值是大于17的。
而我右边的最大值,这可是个真实最大值,所以6位置的水量就是13-6= 7格子水
左边跟右边max谁小就先结算那边的水量

代码

    public static int trap(int[] arr) {
        if (arr == null || arr.length < 2) {
            return 0;
        }
        int N = arr.length;
        int L = 1;
        int leftMax = arr[0];
        int R = N - 2;
        int rightMax = arr[N - 1];
        int water = 0;
        while (L <= R) {
            if (leftMax <= rightMax) {
                water += Math.max(0, leftMax - arr[L]);
                leftMax = Math.max(leftMax, arr[L++]);
            } else {
                water += Math.max(0, rightMax - arr[R]);
                rightMax = Math.max(rightMax, arr[R--]);
            }
        }
        return water;
    }
相关文章
|
7月前
|
传感器 人工智能 数据可视化
打造农业大数据平台,助力农业现代化高质量发展!
中安数码积极响应农业农村部《全国智慧农业行动计划(2024—2028年)》,推出智慧农业大数据平台解决方案。该方案涵盖驾驶舱、农业用地“一张图”、土壤环境监测、土地质量评价、作物生长状态监测评估及农业生产管理等功能模块,通过大数据、AI、GIS等技术实现农业智能化、精准化发展,助力提升农业生产效率与资源利用率,推动现代农业高质量发展。
|
设计模式 自然语言处理 Java
递归下降解析器的设计与实现
递归下降解析器的设计与实现
|
11月前
|
存储 安全 Unix
22 Cookie
路老师在知乎上分享PHP语言的知识,帮助大家入门并深入了解PHP。本文主要介绍Cookie的概念、功能及管理方法,包括如何创建、读取、删除Cookie,以及Cookie的生命周期等内容。纯干货,技术知识分享。
168 0
|
前端开发 测试技术
如何绘制wbs图
如何绘制wbs图
596 0
|
SQL 安全 关系型数据库
MySQL数据库——事务-简介、事务操作、四大特性、并发事务问题、事务隔离级别
MySQL数据库——事务-简介、事务操作、四大特性、并发事务问题、事务隔离级别
285 1
|
设计模式 运维 分布式计算
工作经验小结(2023.11.21)
工作经验小结(2023.11.21)
265 1
|
JSON API 数据格式
如何利用API接口获取电商平台数据?
作为产品经理,我们需要了解电商平台的数据情况,以便更好地制定产品策略和优化用户体验。而利用API接口获取电商平台数据是一种高效、便捷的方式。本文将从以下几个方面介绍如何利用API接口获取电商平台数据。
|
弹性计算 黑灰产治理
阿里云学生服务器免费用半年(申请全流程)
阿里云学生服务器免费用半年教程,2023阿里云学生服务器免费领取,先完成学生认证即可免费领取一台云服务器ECS,配置为2核2G、1M带宽、40G系统盘,在云服务器ECS实例过期之前,完成实验与认证任务,还可以免费续费6个月,阿里云百科来详细说下2023阿里云学生服务器活动、学生机配置、免费时长及学生服务器领取条件:
4997 0
阿里云学生服务器免费用半年(申请全流程)
|
前端开发 C#
C# Net MVC 大文件下载几种方式、支持速度限制、资源占用小
C# Net MVC 大文件下载几种方式、支持速度限制、资源占用小
|
数据安全/隐私保护 开发者 Ruby
Fastlane 自动打包
Fastlane 自动打包
Fastlane 自动打包