21 lines
545 B
Python
21 lines
545 B
Python
from typing import List
|
|
|
|
|
|
class Solution:
|
|
def trap(self, height: List[int]) -> int:
|
|
n = len(height)
|
|
if n == 0:
|
|
return 0
|
|
left = [0] * n
|
|
right = [0] * n
|
|
left[0] = height[0]
|
|
for i in range(1, n):
|
|
left[i] = max(left[i - 1], height[i])
|
|
right[-1] = height[-1]
|
|
for i in range(n - 2, -1, -1):
|
|
right[i] = max(right[i + 1], height[i])
|
|
ans = 0
|
|
for i in range(n):
|
|
ans += min(left[i], right[i]) - height[i]
|
|
return ans
|