42. Trapping Rain Water - LeetCode Solution


Array Stack

Python Code:

class Solution:
    def trap(self, height: List[int]) -> int:
        maxl = []
        maxr = []
        if(len(height) == 0):
            return 0

        maxl.append(height[-1])
        maxr.append(height[0])

        for i in range(1, len(height), 1):
            maxr.append(max(height[i], maxr[-1]))


        for i in range(len(height) - 2, -1, -1):
            maxl.append(max(height[i], maxl[-1]))


        count = 0

        maxl.reverse()


        for i in range(len(height)):
            count+= min(maxr[i], maxl[i]) - height[i]

        return count


Comments

Submit
0 Comments
More Questions

746C - Tram
1278B - A and B
1353D - Constructing the Array
1269C - Long Beautiful Integer
1076A - Minimizing the String
913C - Party Lemonade
1313A - Fast Food Restaurant
681A - A Good Contest
1585F - Non-equal Neighbours
747A - Display Size
285A - Slightly Decreasing Permutations
515C - Drazil and Factorial
1151E - Number of Components
1151F - Sonya and Informatics
556A - Case of the Zeros and Ones
867A - Between the Offices
1569A - Balanced Substring
260A - Adding Digits
1698C - 3SUM Closure
1029B - Creating the Contest
1421A - XORwice
1029A - Many Equal Substrings
1675D - Vertical Paths
1271C - Shawarma Tent
805A - Fake NP
1163A - Eating Soup
787A - The Monster
807A - Is it rated
1096A - Find Divisible
1430C - Numbers on Whiteboard