</pre><pre name="code" class="cpp">class Solution {
public:
int max(int a,int b)
{
if(a > b)
return a;
else
return b;
}
int min(int a,int b)
{
if(a < b)
return a;
else
return b;
}
int maxArea(vector<int>& height) {
int n = height.size();
int i;
int l = 0;
int r = n-1;
int ans = 0;
while( l < r)
{
ans = max(ans,min(height[l],height[r])*(r-l));
if(height[l] < height[r])
{
int k = l;
while(k < r && height[k] <= height[l])
k++;
l = k;
}
else
{
int k = r;
while(k > l && height[k] <= height[r])
k--;
r = k;
}
}
return ans;
}
};
原文:http://blog.csdn.net/sunshinemay_1014/article/details/46492615