给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i,height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。
说明:你不能倾斜容器。
思路:
代码:
package text11;
public class Solution {
public static int maxArea(int[] height) {
int maxnum=0;
int len=height.length;
int i=0,j=len-1;
maxnum=max(maxnum,(j-i)*min(height[i],height[j]));
while(i<j) {
if(height[i]<height[j]&&i<j) {
i++;
maxnum=max(maxnum,(j-i)*min(height[i],height[j]));
}
if(height[i]>=height[j]&&i<j) {
j--;
maxnum=max(maxnum,(j-i)*min(height[i],height[j]));
}
}
return maxnum;
}
public static int min(int a,int b) {
if(a>b) {return b;}
else {return a;}
}
public static int max(int a,int b) {
if(a<b) {return b;}
else {return a;}
}
public static void main(String args[]) {
int[] height=new int[] {1,8,6,2,5,4,8,3,7};
int result=maxArea(height);
System.out.print(result);
}
}