![在这里插入图片描述](https://img-blog.csdnimg.cn/20210324181127459.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzY4NDczNQ==,size_16,color_FFFFFF,t_70
class Solution {
public int maxArea(int[] height) {
//使用双指针寻找最大值,左指针为left,右指针为right,分别指向height数组的左右两端
int left=0, right = height.length - 1;
//将面积初始化为0
int ans = 0;
//当左指针<右指针时不断的通过右移left或者左移right实现求面积的最大值
while(left<right){
//计算面积
int area = Math.min(height[left],height[right])*(right-left);
//保存最大的面积
ans = Math.max(ans,area);
//如果左指针指向的数小右指针指向的数,则将左指针向右平移,否则将右指针向左平移
if(height[left]<=height[right]){
++left;
}else{
--right;
}
}
return ans;
}
}