@@ -96,26 +96,16 @@ var trap = function(height) {
9696Python Code:
9797
9898``` python
99-
10099class Solution :
101- def trap (self , height : List[int ]) -> int :
102- maxLeft, maxRight, volum = 0 , 0 , 0
103- maxLeftStack, maxRightStack = [], []
104- for h in height:
105- if h > maxLeft:
106- maxLeftStack.append(h)
107- maxLeft = h
108- else :
109- maxLeftStack.append(maxLeft)
110- for h in height[::- 1 ]:
111- if h > maxRight:
112- maxRightStack.append(h)
113- maxRight = h
114- else :
115- maxRightStack.append(maxRight)
116- maxRightStack = maxRightStack[::- 1 ]
117- for i in range (1 , len (height) - 1 ):
118- minSide = min (maxLeftStack[i], maxRightStack[i])
119- volum += minSide - height[i]
120- return volum
100+ def trap (self , heights : List[int ]) -> int :
101+ n = len (heights)
102+ l, r = [0 ] * (n + 1 ), [0 ] * (n + 1 )
103+ ans = 0
104+ for i in range (1 , len (heights) + 1 ):
105+ l[i] = max (l[i - 1 ], heights[i - 1 ])
106+ for i in range (len (heights) - 1 , 0 , - 1 ):
107+ r[i] = max (r[i + 1 ], heights[i])
108+ for i in range (len (heights)):
109+ ans += max (0 , min (l[i + 1 ], r[i]) - heights[i])
110+ return ans
121111```
0 commit comments