力扣42 接雨水

听说字节每人都会接雨水,我也要会哈哈哈

数据结构:数组

算法:核心是计算这一列接到多少雨水,它取决于它左边的最大值和右边的最大值,如下图第三根柱子能接到的雨水应该是第一根柱子高度和第五根柱子高度的最小值减去第三根柱子高度。

java 复制代码
class Solution {
    public int trap(int[] height) {
        int n = height.length;
        if (n == 0) {
            return 0;
        }

        int[] leftMax = new int[n];
        leftMax[0] = height[0];
        for (int i = 1; i < n; ++i) {
            leftMax[i] = Math.max(leftMax[i - 1], height[i]);
        }

        int[] rightMax = new int[n];
        rightMax[n - 1] = height[n - 1];
        for (int i = n - 2; i >= 0; --i) {
            rightMax[i] = Math.max(rightMax[i + 1], height[i]);
        }

        int ans = 0;
        for (int i = 0; i < n; ++i) {
            ans += Math.min(leftMax[i], rightMax[i]) - height[i];
        }
        return ans;
    }
}
相关推荐
智算菩萨13 小时前
上下文学习的贝叶斯推断视角:隐式梯度下降还是隐式贝叶斯?
人工智能·算法
TracyCoder12313 小时前
LeetCode Hot100(52/100)——394. 字符串解码
算法·leetcode·职场和发展
thginWalker13 小时前
leetcode有空可以挑战的题目
leetcode
52Hz11813 小时前
力扣207.课程表、208.实现Trie(前缀树)
python·leetcode
Java小卷13 小时前
KIE Drools 10.x 规则引擎快速入门
java·后端
fengsen521131413 小时前
Windows操作系统部署Tomcat详细讲解
java·windows·tomcat
竟未曾年少轻狂13 小时前
Spring Boot 项目集成 Redis
java·spring boot·redis·缓存·消息队列·wpf·redis集群
_codemonster14 小时前
java web修改了文件和新建了文件需要注意的问题
java·开发语言·前端
Σίσυφος190014 小时前
四元数 欧拉角 旋转矩阵
人工智能·算法·矩阵
shentuyu木木木(森)14 小时前
单调队列 & 单调栈
数据结构·c++·算法·单调栈·单调队列