Trapping Rain Water

42

Two Pointers

class Solution:
    def trap(self, h):
        """
        :type h: List[int]
        :rtype: int
        """
        left = 0
        right = len(h) -1
        leftMax, rightMax = 0, 0
        res = 0
        
        while left < right:
            if h[left] < h[right]:
                if h[left] > leftMax:
                    leftMax = h[left]
                else:
                    res += (leftMax - h[left])    
                left += 1
                
            if h[left] >= h[right]:
                
                if h[right] > rightMax:
                    rightMax = h[right]
                else:
                    res += (rightMax - h[right])
                right -=1
        return res

Last updated