class Solution {
public int maxArea(int[] height) {
int n = height.length;
int left = 0;
int right = n-1;
int leftH = height[left];
int rightH = height[right];
if (n==2) {
return (rightH<leftH)?rightH:leftH;
};
int leftMax = leftH;
int rightMax = rightH;
int res = 0;
while (left < right){
if (leftMax <= rightMax){
left++;
if (height[left]<=leftMax){
res += leftMax-height[left];
}
else {
res += 0;
leftMax = height[left];
}
}
else {
right--;
if (height[right]<=rightMax){
res += rightMax-height[right];
}
else {
res += 0;
rightMax = height[right];
}
}
}
return res;
}
public static void main(String[] args){
int[] input = {2,1,0,4};
Solution s = new Solution();
System.out.println(s.maxArea(input));
}
}