给定n个非负整数表示每个宽度为1的柱子的高度题,计算按此排列的柱子,下雨之后能接多少雨水。
"""" 特殊的单调递增 序列a按照最高值划分为两个数组b、c,后半部分翻转 对每一个数组,遍历数组, 若当前最大值t_max小于x,则更新t_max = x; 若大于,则计数 t_max - x """ def count(a): ret, t_max = 0, 0 for x in a: if x > t_max: t_max = x else: ret += t_max - x return ret if __name__ == "__main__": a = list(map(int, input().strip().split(','))) b = a[a.index(max(a)):][::-1] c = a[:a.index(max(a)) + 1] ans = 0 ans += count(b) ans += count(c) print(ans)