做这道题前,先搞懂上一题。
考虑得到每个柱子上面能存储的雨水高度,累加这些高度即可👇

而每个柱子上面能存储的雨水高度,取决于它左侧最高柱子以及它右侧最高柱子的高度之间的最小值👇
给定n个非负整数表示每个宽度为 1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

输入共两行。
第一行为一个整数n,代表数组height的长度。
第二行为n个整数height0,height1,...,heightn−1,数字之间以空格分隔。
一个整数,表示答案。
输入
12
0 1 0 2 1 0 1 3 2 1 2 1
输出
6
上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接6个单位的雨水(蓝色部分表示雨水)
输入
6
4 2 0 3 2 5
输出
9
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.