Given n non-negative integers A1, A2, ..., an, where each represents a point at Coordi Nate (i, ai). N Vertical Lines is drawn such that the the both endpoints of line I am at (i, ai) and ( i, 0). Find lines, which together with X-axis forms a container, such that the container contains the most water.
Note:you may not slant the container.
Hide TagsArray of Pointers This question to understand after the problem is not difficult, in fact, is the end-to-end pointer to the middle.
#include <iostream>#include<vector>using namespacestd;#defineMIN (L,r) ((L) < (R)? ( L):(R))classSolution { Public: intMaxarea (vector<int> &height) { intn =height.size (); if(n<2)return 0; if(n==2)returnMIN (height[0],height[1]); intlidx=0, ridx=n-1, sum=0; while(lidx<ridx) { if(sum< (RIDX-LIDX) *MIN (Height[lidx],height[ridx])) sum= (RIDX-LIDX) *MIN (Height[lidx],height[ridx]); if(height[lidx]<Height[ridx]) lidx++; ElseRidx--; } returnsum; }};intmain () {vector<int> h{1,2,1}; Solution Sol; cout<<sol.maxarea (h) <<Endl; return 0;}
[Leetcode] Container with most water