- 0
Notifications Mark All Read
- Login
- Get Prime
Python Program for Trapping Rain Water Problem
Trapping Rain Water in Python
Here, in this page we will discuss one of the famous problem of Trapping Rain Water in Python . We are given with n non-negative integers representing an elevation map where the width of each bar is 1, we need to compute how much water it is able to trap after raining.
Example :
- Input : arr = [2,0,3,0,2,0,4]
- Output : 9
- Explanation : We can trap “2 units” of water between 2 and 3, “7 units” between 3 and 4 (“3 units” between 3 and 2 , “1 unit” on top of bar 2 and “3 units” between 2 and 4.
Algorithm
- Start
- Initialize three variables with value zero named as ans, temp, prev
- Iterate entire array using variable i
- if arr[i] is greater then prev and temp is zero then assign the value or arr[i] to prev
- else if arr[i] is greater then or equals to prev then add temp to ans, assign arr[i] to prev and temp to zero
- else check if arr[i] is not the last element of arr and arr[i] is less then maximum of arr[i+1 : ] then assign difference of prev and arr[i] to temp else add arr[i to ans, assign temp to zero and prev to arr[i]
- Print value of answer
Python code
Run
def rain(arr): ans = 0 temp = 0 prev = 0 for i in range(len(arr)): if arr[i] > prev and temp == 0: prev = arr[i] elif arr[i] >= prev: ans += temp prev = arr[i] temp = 0 else: if i != len(arr)-1 and arr[i] < max(arr[i+1:]): temp += prev - arr[i] else: ans += arr[i] temp = 0 prev = arr[i] return ans arr = [2, 0, 3, 0, 2, 0, 4] print(rain(arr))
Output
9
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
If you want to practice similar Questions click on the given button.
Login/Signup to comment