题解 | #容器盛水问题#

容器盛水问题

http://www.nowcoder.com/practice/f92929ec6e5642a690e7c197b0c40e38

n = int(input())
if n < 3:
    print(0)
    exit()
nums = list(map(int, input().split()))
i, j = 0, n - 1
left_max = nums[0]
right_max = nums[-1]
res = 0
while i < j:
    if nums[i] < nums[j]:
        i += 1
        if nums[i] < left_max:
            res += left_max - nums[i]
        else:
            left_max = nums[i]
    else:
        j -= 1
        if nums[j] < right_max:
            res += right_max - nums[j]
        else:
            right_max = nums[j]
print(res)
全部评论

相关推荐

07-24 13:43
门头沟学院 Java
longerluck...:我猜说的是“你真**是个天才”
投递美团等公司10个岗位
点赞 评论 收藏
分享
06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务