publicclassSolution{publicintmaxArea(int[] height){int left =0;int right = height.length-1;int vomumn =0;while(left < right ){int area =Math.min(height[left ],height[right ])*(right -left)
volumn =Math.max(volumn,area)// 移动较小的数字指针if(height[left]<=height[righ]){++left
}else{-- right
}}return volumn
}
题2:容器盛水问题
publiclong maxWater (int[] arr){// write code hereint l =0;int r = arr.length-1;int i= l;int j = r;long v =0;while(i<j){// 若左指针数字较小if(arr[l]<arr[r]){// 从最低边界开始遍历,若比最低边界还低,则累加水量if(arr[++i]<arr[l]){
v += arr[l]-arr[i];}else{// 若大于最低边界,则更新边界值
l=i;}}else{if(arr[--i]<arr[l]){
v += arr[r]-arr[j];}else{
r=j;}}}return v;}