思路:假设最左边和最右边两根垂直线,它们和x轴形成一个桶,这个桶的面积就由直线之间的距离乘以它们中最低的高度,为了扩大桶的面积,必须放弃当前高度最低的桶,因为只要它存在,最低高度就不会变,而现在横向距离已经是最大,扩大距离是不可能的,所以,只能是舍弃最短高度的直线,左边最短,向右移动,右边最短,向左移动。
code:
class Solution {
public:
int maxArea(vector<int> &height) {
int num = height.size();
if(num>1){
int front = 0,back = num-1;
int ret = min(height[front],height[back])*(back - front);
while(front<back){
if(height[front] < height[back])
front++;
else
back--;
ret = max(ret,min(height[front],height[back])*(back - front));
}
return ret;
}
return 0;
}
};