给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。
找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。
最初始的底是数组的长度 - 1。
设置左右指针,左指针指向数组的第一位,右指针指向数组的最后一位。
每次将左右指针较短的那一边向中心移动一位,以获得最大面积。遍历完整个数组后输出最大面积
public int maxArea(int[] height) {
//定义最大面积
int maxArea = 0;
//定义记录最短边的变量用于作为高 base作为初始的底长度
int minHeight, base = height.length - 1;
//定义左右指针指向数组的首尾
for (int i = 0, j = height.length - 1; i < j; ) {
//用左右指针中较短边作为面积的高 并将较短边向中心移动一位
minHeight = height[i] < height[j] ? height[i++] : height[j--];
//与当前的最大面积比较取最大
maxArea = maxArea > minHeight * base ? maxArea : minHeight * base;
//每次移动底边都会减一
base--;
}
//返回最大面积
return maxArea;
}