Day7: (2-pointer)
Trapping rain water Solved on: 26th Aug 2020
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t, n;
cin >> t;
while (t--) {
cin >> n;
int arr[n];
for (int i=0;i<n;i++) {
cin >> arr[i];
}
int left[n];
int right[n];
int ans=0;
left[0]=arr[0];
for(int i=1;i<n;i++) {
left[i] = max(left[i-1], arr[i]);
}
right[n-1]=arr[n-1];
for(int i=n-2;i>=0;i--) {
right[i] = max(right[i+1], arr[i]);
}
for (int i=0;i<n;i++) {
ans = ans + ( min(left[i], right[i]) - arr[i] );
}
cout << ans << "\n";
}
return 0;
}
}Remove Duplicate from Sorted array Solved on: Aug 26th 2020
Max continuous number of 1’s Solved on: Aug 26th 2020
Last updated
Was this helpful?