From d86b2b93cff4fd3109bc524b014fd1b756acb843 Mon Sep 17 00:00:00 2001 From: vaish-456 <43766009+vaish-456@users.noreply.github.com> Date: Sat, 5 Oct 2019 19:46:38 +0530 Subject: [PATCH] Create trapping rainwater problem in O(1) space --- Code/trapping rainwater problem in O(1) space | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Code/trapping rainwater problem in O(1) space diff --git a/Code/trapping rainwater problem in O(1) space b/Code/trapping rainwater problem in O(1) space new file mode 100644 index 0000000..6189516 --- /dev/null +++ b/Code/trapping rainwater problem in O(1) space @@ -0,0 +1,40 @@ +def findWater(arr,n): + + result = 0 + + + left_max = 0 + right_max = 0 + + lo = 0 + hi = n-1 + + while(lo <= hi): + + if(arr[lo] < arr[hi]): + + if(arr[lo] > left_max): + + left_max = arr[lo] + else: + + result += left_max - arr[lo] + lo+=1 + + else: + + if(arr[hi] > right_max): + + right_max = arr[hi] + else: + result += right_max - arr[hi] + hi-=1 + + return result + + +arr = [int(x) for x in input().split()] +n = len(arr) + +print("Maximum water that can be accumulated is ", + findWater(arr, n))