雨水-容积问题-python题解

雨水

【问题描述】

从 x 轴开始,给出⼀个数组,数组⾥⾯的数字代表从 (0,0) 点开始,宽度为 1 个单位,⾼度为数组元素 的值。如果下⾬了,问这样⼀个容器能装多少单位的⽔?例如输入0,1,0,2,1,0,1,3,2,1,2,1下图中黑色代表高度,蓝色代表空白,可以装雨水,一共可以装6个单位的雨水。

截屏2022-03-06 上午11.14.06.png

【输入形式】

整数数组代表高度,用逗号隔开
【输出形式】

雨水的体积
【样例输入】

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))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值