42. 接雨水

文章目录

题意

题目链接

思路

单调栈

代码

C++ 复制代码
class Solution {
public:
    int trap(vector<int>& height) {
        stack<int> s;
        int ans = 0;
        for (int i = 0; i < height.size(); i++) {
            const int x = height[i];
            while (!s.empty() && height[s.top()] <= x) {
                const int h = height[s.top()];
                s.pop();
                if (s.empty())
                    break;
                int left = s.top();
                int dh = min(height[left], height[i]) - h;
                ans += dh * (i - left - 1);
            }
            s.push(i);
        }
        
        
        return ans;
    }
};
相关推荐
Engineer邓祥浩3 小时前
LeetCode 热题 100 - 第1题:两数之和
算法·leetcode·职场和发展
阿Y加油吧3 小时前
算法二刷复盘:LeetCode 79 单词搜索 & 131 分割回文串(Java 回溯精讲)
java·算法·leetcode
6Hzlia3 小时前
【Hot 100 刷题计划】 LeetCode 101. 对称二叉树 | C++ DFS 极简递归模板
c++·leetcode·深度优先
北顾笙9803 小时前
day30-数据结构力扣
数据结构·算法·leetcode
承渊政道5 小时前
【递归、搜索与回溯算法】(掌握记忆化搜索的核心套路)
数据结构·c++·算法·leetcode·macos·动态规划·宽度优先
穿条秋裤到处跑5 小时前
每日一道leetcode(2026.04.23):等值距离和
算法·leetcode·职场和发展
少许极端5 小时前
算法奇妙屋(四十九)-贡献法
java·算法·leetcode·贡献法
_深海凉_5 小时前
LeetCode热题100-88. 合并两个有序数组
算法·leetcode·职场和发展
人道领域5 小时前
【LeetCode刷题日记】119.最长连续序列(字节面试题最新)
java·算法·leetcode·面试·职场和发展
KobeSacre6 小时前
将有序数组转换为二叉搜索树
数据结构·算法·leetcode