Given n non-negative integers a1, a2, ..., an,
where each represents a point at coordinate (i, ai).
n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0).
Find two lines, which together with x-axis forms a container,
such that the container contains the most water.

Note: You may not slant the container.

 

 1 class Solution {
 2 public:
 3     int maxArea(vector<int>& height) {
 4         if(height.size()==0) return 0;
 5         int n=height.size();
 6         int i=0;
 7         int j=n-1;
 8         int maxCapacity=0;
 9         int tmp=0;
10 
11         while(i!=j)
12         {
13             
14             if(height[i]<=height[j])
15             {
16                 tmp=height[i]*(j-i);
17                 i++;
18             }else if(height[j]<=height[i])
19             {
20                 tmp=height[j]*(j-i);
21                 j--;
22             }
23             
24             if(maxCapacity<tmp)
25             {
26                 maxCapacity=tmp;
27             }
28 
29         }
30 
31         return maxCapacity;
32     }
33 };

 

posted on 2015-04-30 18:46  黄瓜小肥皂  阅读(141)  评论(0编辑  收藏  举报