Leetcode 42. Trapping Rain Water
Trapping Rain Water - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared…
n non-negative integers representing an elevation map where the width of each bar is
1, compute how much water it can trap after raining.
Input: height = [0,1,0,2,1,0,1,3,2,1,2,1]
Explanation: The above elevation map (black section) is represented by array [0,1,0,2,1,0,1,3,2,1,2,1]. In this case, 6 units of rain water (blue section) are being trapped.
Input: height = [4,2,0,3,2,5]
n == height.length
0 <= n <= 3 * 104
0 <= height[i] <= 105
- Use two pointer, left and right to track the maxLeft and maxRight
- four types of situation.
- Left side is lower, and left is larger than maxLeft -> update maxLeft -> move to next left
- Left side is lower, and left is lower than maxLeft -> add the different to answer -> move to next left
- Right side is lower, and right is lower than maxRight -> update maxRight -> move to next right
- Right side is lower, and right is lower than maxRight -> add the different t andswer -> move to next right
3. return the answer
4. TC: O(n)