public class MaxArea {
public static void main(String[] args) {
MaxArea maxArea = new MaxArea();
int[] height = {1,8,6,2,5,4,8,3,7};
//int[] height = {1,1};
System.out.println(maxArea.maxArea(height));
}
public int maxArea(int[] height) {
int l = 0;//左
int r = height.length-1;//右
int maxArea = 0;//最大水量
while (r>l) {
int minHeight = Math.min(height[l], height[r]);//取最低
maxArea = Math.max(maxArea, minHeight*(r-l));
//最低的一段开始移动,直到超过之前的最低的
while (r>l && height[l]<=minHeight) {
l++;
}
while (r>l && height[r]<=minHeight) {
r--;
}
}
return maxArea;
}
}