diff --git a/CPP/dp trapping rainwater.cpp b/CPP/dp trapping rainwater.cpp new file mode 100644 index 0000000..d01b63a --- /dev/null +++ b/CPP/dp trapping rainwater.cpp @@ -0,0 +1,28 @@ +class Solution { +public: + int trap(vector& height) { + int n=height.size(); + vector mxl(n);// maximum height to the left + mxl[0]=height[0]; + //mxl.push_back(height[0]); + for(int i=1;i=0;i--) + { + int nx=max(height[i],mxr[i+1]); + mxr[i]=nx; + } + int sum=0; + for(int i=1;i< n-1;i++) + { + sum+=max(min(mxr[i],mxl[i])-height[i], 0); + } + return sum; + } +};