从两侧开始计算面积向中间收缩,收缩条件是左右两条边较短的一边向中间靠拢。
class Solution {
public int maxArea(int[] height) {
int left = 0;
int right = height.length-1;
int area = 0;
while(left<right){
int width_;
int long_;
if(height[left]>height[right]){
width_ = height[right];
long_ = right-left;
right--;
}else{
width_ = height[left];
long_ = right-left;
left++;
}
int temp = width_*long_;
if(temp>area)area = temp;
}
return area;
}
}
题目来源:leetcode