题目描述
给定n个柱面的高度,表示降雨某地n块区域的海拔高度。 计算降雨之后该地最大储水面积。如果低于地平线,也就是小于0,则一定积水
输入描述:
第一行输入整数n.(1<=n<=10000) 第二行输入n个高度整数h。(-10000<=h<=10000)
示例1
输入12
0 1 0 2 1 0 1 3 2 1 2 1
输出6
class Solution:
def __init__(self) -> None:
pass
def solution(self, n, arr):
result = 0
l = 0
r = n - 1
ll = max(arr[l], 0)
rr = max(arr[r], 0)
while l <= r:
ll = max(ll, arr[l])
rr = max(rr, arr[r])
if ll < rr:
result += ll - arr[l]
l += 1
else:
result += rr - arr[r]
r -= 1
# TODO: 请在此编写代码
return result
if __name__ == "__main__":
n = int(input().strip())
arr = [int(item) for item in input().strip().split()]
sol = Solution()
result = sol.solution(n, arr)
print(result)