题解 | #容器盛水问题#

容器盛水问题

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)
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-26 16:06
已编辑
快手电商 后端 23k-35k
点赞 评论 收藏
分享
已老实求offer😫:有点像徐坤(没有冒犯的意思哈)
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务