LeetCode 42:接雨水
LeetCode 42:接雨水 题目描述 解题思路 代码实现 总结 题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 解题思路 借助栈的结构来解决,设定 指针初始位置为0 ,在越界的前提下, 依次向后 移动,在 初始及栈顶元素的高度大于当前指针所指高度 时, 压栈 操作, 指针后 移。当 栈不为空且 , 栈顶元素高度小于当前指针的高度 时,将 栈顶 高度的值 存入中间变量 ,并将栈顶 弹 出。此时如果 栈为空 的话,说明没有另外一面墙和其配对, 则break 继续 压栈指针后移 。 否则 ,记录两面墙之间的距离,用 两面墙中的最小值与距离相乘 ,即 为面积 。,重复上述操作,记录累计的面积和!!!!! 代码实现 去 博客设置 页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片 . import java . util . Stack ; public class waterContaining { //接雨水 public int trap ( int [ ] height ) { //acc: 8ms 30% int sum = 0 ; //雨水总量 Stack < Integer > stack = new Stack < > ( ) ; int current = 0 ; //指针初始位置 while