装最多水的容器

装最多水的容器

给定 n 个非负整数 a1, a2, …, an, 每个数代表了坐标中的一个点 (i, ai)。画 n 条垂直线,使得 i 垂直线的两个端点分别为(i, ai)和(i, 0)。找到两条线,使得其与 x 轴共同构成一个容器,以容纳最多水。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class {
* @param heights: an array of integers
* @return: an integer
*/
public int maxArea(int[] heights) {
int maxtemp=0;
int max=0;
for(int i=0;i<heights.length;i++){
for(int j=heights.length-1;j>i;j--){
if(heights[j]>heights[i]||heights[j]==heights[i]){
maxtemp=maxtemp>(heights[i]*(j-i))?maxtemp:heights[i]*(j-i);
break;
}
maxtemp=maxtemp>(heights[j]*(j-i))?maxtemp:heights[j]*(j-i);
}
max=max>maxtemp?max:maxtemp;
}
return max;
}
}