
给定 `n` 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。
**输入格式:**
第一行:n(柱子个数)
第二行:n 个非负整数,表示每个柱子的高度
**输出格式:** 能接的雨水总量
**输入格式:**
第一行:n(柱子个数)
第二行:n 个非负整数,表示每个柱子的高度
**输出格式:** 能接的雨水总量
📋 示例
示例 1由左到右柱高 [0,1,0,2,1,0,1,3,2,1,2,1],可接 6 个单位雨水
输入:
12
0 1 0 2 1 0 1 3 2 1 2 1输出:
6示例 2
输入:
6
4 2 0 3 2 5输出:
9🧪 测试用例 (5 个)
| # | 输入 | 期望输出 | 说明 |
|---|---|---|---|
| 1 | 12 ⏎ 0 1 0 2 1 0 1 3 2 1 2 1 | 6 | 经典用例 |
| 2 | 6 ⏎ 4 2 0 3 2 5 | 9 | 中等用例 |
| 3 | 3 ⏎ 1 2 3 | 0 | 递增,接不到水 |
| 4 | 3 ⏎ 3 2 1 | 0 | 递减,接不到水 |
| 5 | 5 ⏎ 5 0 5 0 5 | 10 | 山谷形 |
💡 提示 (3 条)
双指针法:左右各一个指针,维护左右最大高度,移动较短的那边
每个位置能接的水 = min(左边最大高度, 右边最大高度) - 当前高度
也可以预处理 leftMax 和 rightMax 数组
你的代码在当前浏览器暂存
语言