intmaxArea(int* height,int heightSize){//1.创建左右指针int left =0;int right = heightSize -1;int max =0;int tmp =0;//2.循环求体积V,并使用max进行记录while(left < right){if(height[left]> height[right]){
tmp = height[right]*(right - left);//存储V
right--;//right对应值为小元素,则right改变}else{
tmp = height[left]*(right - left);
left++;//同上}if(tmp >= max){
max = tmp;}}//3.判断左右下标值,保存最大的一个继续进行循环return max;}
JAVA代码如下:
classSolution{publicintmaxArea(int[] height){int left =0;int right = height.length -1;int max =0;int v =0;while(left < right){if(height[left]> height[right]){
v =Math.min(height[left],height[right])*(right - left);
right--;}else{
v =Math.min(height[left],height[right])*(right - left);
left++;}
max =Math.max(max,v);}return max;}}