42_接雨水

简介: 42_接雨水

42_接雨水

 

package 数组;
/**
 * https://leetcode-cn.com/problems/trapping-rain-water/solution/
 * @author Huangyujun
 * 思路: 一个水柱A能接到多少水,取决于左右两侧最低的柱子与当前水柱A 的高度差(单元水量),同时要注意的是左侧的柱子的最大值,即可高度差最大值
 * 例如首先左边柱子比较低,找到左边(在比较低的范围找到一个最大值 left_max)获取最大高度差水量
 */
public class _42_接雨水 {
    public int trap(int[] height) {
        int left = 0, right = height.length - 1;
        int ans = 0;
        int left_max = 0, right_max = 0;
        while (left < right) {
            if (height[left] < height[right]) {     // 需要找小的:(目的:去获取那个小柱子中的最大值)
                if (height[left] >= left_max) {
                    left_max = height[left];
                } else {
                    ans += (left_max - height[left]);
                }
                ++left;
            } else {
                if (height[right] >= right_max) {
                    right_max = height[right];
                } else {
                    ans += (right_max - height[right]);
                }
                --right;
            }
        }
        return ans;
    }
}



目录
相关文章
|
9月前
|
Serverless 计算机视觉
YOLOv11改进策略【小目标改进】| Shape-NWD:融合改进,结合Shape-IoU和NWD 更好地适应小目标特性
YOLOv11改进策略【小目标改进】| Shape-NWD:融合改进,结合Shape-IoU和NWD 更好地适应小目标特性
1502 9
|
11月前
|
数据采集 JSON 开发者
Python爬虫京东商品详情数据接口
京东商品详情数据接口(JD.item_get)提供商品标题、价格、品牌、规格、图片等详细信息,适用于电商数据分析、竞品分析等。开发者需先注册账号、创建应用并申请接口权限,使用时需遵循相关规则,注意数据更新频率和错误处理。示例代码展示了如何通过 Python 调用此接口并处理返回的 JSON 数据。
|
Linux Perl
`sed`命令删除文件中匹配特定模式的行
`sed`命令删除文件中匹配特定模式的行
515 4
|
Serverless
ChIP-seq 分析:Differential Peaks(15)
ChIP-seq 分析:Differential Peaks(15)
|
存储 程序员 编译器
C语言:深入补码计算原理
C语言:深入补码计算原理
450 2
|
SQL Oracle 关系型数据库
Oracle之如何替换相关结果数据
Oracle之如何替换相关结果数据
287 0
|
SQL 测试技术 数据库
软件测试|教你怎么向SQL中插入数据
软件测试|教你怎么向SQL中插入数据
|
索引
lodash函数调整参数
lodash函数调整参数
163 0
lodash函数调整参数
|
开发者
“PolarDB-X测评”活动最终获奖名单
“PolarDB-X测评”活动最终获奖名单