42. 接雨水

42. 接雨水_第1张图片


42. 接雨水_第2张图片
分别计算每一个位置左右两边的最高的柱子,选其中较低的减当前位置高度即为积水高度


42. 接雨水_第3张图片
从左到右按照降序把高度压入栈中,当右移过程中,若大于栈顶元素则弹出,计算当前段的积水(当前位置-当前栈顶位置)*(min( 当前位置高度-当前栈顶位置高度 )-弹出位置高度)


42. 接雨水_第4张图片
左右两个索引,每一次小的向中心移动,当高于当前不会积水,低于则积水为移动端的最大值-当前高度(由于移动端的max必然是小的那一个)

你可能感兴趣的:(42. 接雨水)