trapping-rain-water py3
This commit is contained in:
parent
a0b3f7f134
commit
a115f39b17
8
0011_container-with-most-water/NOTES.md
Normal file
8
0011_container-with-most-water/NOTES.md
Normal file
@ -0,0 +1,8 @@
|
||||
## Approaches:
|
||||
|
||||
1. Brute force $O(N^2)$
|
||||
2. Two-pointer $O(N)$
|
||||
|
||||
## Follow-up questions
|
||||
|
||||
1. What if you could slant the container?
|
22
0042_trapping-rain-water/README.md
Normal file
22
0042_trapping-rain-water/README.md
Normal file
@ -0,0 +1,22 @@
|
||||
Given `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.
|
||||
|
||||
**Example 1:**
|
||||
|
||||
![](https://assets.leetcode.com/uploads/2018/10/22/rainwatertrap.png)
|
||||
|
||||
Input: height = [0,1,0,2,1,0,1,3,2,1,2,1]
|
||||
Output: 6
|
||||
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.
|
||||
|
||||
|
||||
**Example 2:**
|
||||
|
||||
Input: height = [4,2,0,3,2,5]
|
||||
Output: 9
|
||||
|
||||
|
||||
**Constraints:**
|
||||
|
||||
* `n == height.length`
|
||||
* `1 <= n <= 2 * 104`
|
||||
* `0 <= height[i] <= 105`
|
33
0042_trapping-rain-water/python3/imaginary_grid.py
Normal file
33
0042_trapping-rain-water/python3/imaginary_grid.py
Normal file
@ -0,0 +1,33 @@
|
||||
# Time: O(N · H) where H is the maximum height
|
||||
# Space: O(1)
|
||||
|
||||
class Solution:
|
||||
def trap(self, height: List[int]) -> int:
|
||||
maxh = 0
|
||||
|
||||
for h in height:
|
||||
maxh = max(h, maxh)
|
||||
|
||||
land_width = len(height)
|
||||
output = 0
|
||||
|
||||
for i in range(maxh):
|
||||
row_output = 0
|
||||
trough_output = 0
|
||||
trough_start = -1
|
||||
|
||||
for j in range(land_width):
|
||||
# A block is present
|
||||
if height[j] >= i + 1:
|
||||
row_output += trough_output
|
||||
trough_start = j
|
||||
trough_output = 0
|
||||
elif trough_start >= 0:
|
||||
trough_output += 1
|
||||
|
||||
output += row_output
|
||||
|
||||
return output
|
||||
|
||||
|
||||
|
0
0042_trapping-rain-water/python3/solution.py
Normal file
0
0042_trapping-rain-water/python3/solution.py
Normal file
Loading…
Reference in New Issue
Block a user