给定 n 个非负整数 a1, a2, ..., an, 每个数代表了坐标中的一个点 (i, ai)。画 n 条垂直线,使得 i 垂直线的两个端点分别为(i, ai)和(i, 0)。找到两条线,使得其与 x 轴共同构成一个容器,以容纳最多水。
样例
样例
给出[1,3,2], 最大的储水面积是2.
import java.util.Scanner;
/**
* 给定 n 个非负整数 a1, a2, ..., an, 每个数代表了坐标中的一个点 (i, ai)。画 n 条垂直线,使得 i 垂直线的两个端点分别为(i, ai)和(i, 0)。找到两条线,使得其与 x 轴共同构成一个容器,以容纳最多水。
样例
给出[1,3,2], 最大的储水面积是2.
*
* @author Dell
*
*/
public class Test383 {
public static int maxArea(int[] heights)
{
if(heights.length==0)
return 0;
int max=0;
for(int i=0;i<heights.length-1;i++)
{
for(int j=i+1;j<heights.length;j++)
{
int sum=(j-i)*Math.min(heights[i], heights[j]);
if(sum>max)
max=sum;
}
}
return max;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] heights=new int[n];
for(int i=0;i<heights.length;i++)
{
heights[i]=sc.nextInt();
}
System.out.println(maxArea(heights));
}
}