贪心,一开始最大的是两端的高度中小的乘以两端的距离,然后两端中小的那个往中间走,再重新计算,直到循环结束
class Solution {
public:
int maxArea(vector<int> &height) {
if( height.size() < 2)
return 0;
int res = INT_MIN;
int i = 0, j = height.size()-1;
while( i < j){
res = max( res, min(height[i], height[j]) * ( j - i));
if( height[i] >= height[j])
--j;
else
++i;
}
return res;
}
};