雨水
【问题描述】
从 x 轴开始,给出⼀个数组,数组⾥⾯的数字代表从 (0,0) 点开始,宽度为 1 个单位,⾼度为数组元素 的值。如果下⾬了,问这样⼀个容器能装多少单位的⽔?例如输入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
【样例说明】
【评分标准】
s=list(map(int,input().split(',')))
n=len(s)
dp=[0 for i in range(n)]
#对于下标 ii,下雨后水能到达的最大高度等于下标 ii 两边的最大高度的最小值
for i in range(1,n-1):
x=max(s[0:i])
y=max(s[i:])
dp[i]=min(x,y)
for i in range(n):
dp[i]=dp[i]-s[i]
if dp[i]<0:
dp[i]=0
print(sum(dp))