1# Runtime: 254 ms (Top 43.79%) | Memory: 16.1 MB (Top 46.67%)2class Solution:3def trap(self, a: List[int]) -> int:4l = 05r = len(a) - 16maxl = 07maxr = 08res = 0910while l <= r:11if a[l] <= a[r]:12if a[l] >= maxl:13maxl = a[l] # update maxl if a[l] is >=14else:15res += maxl - a[l] # adding captured water when maxl>a[l]16l += 117else:18if a[r] >= maxr:19maxr = a[r]20else:21res += maxr - a[r]22r -= 123return res