给定 n 个非负整数 a1, a2, ..., an, 每个数代表了坐标中的一个点 (i, ai)
。画 n 条垂直线,使得 i 垂直线的两个端点分别为(i, ai)
和(i, 0)
。找到两条线,使得其与 x 轴共同构成一个容器,以容纳最多水。
注意事项
容器不可倾斜。
样例
给出[1,3,2]
, 最大的储水面积是2
.
两个循环 复杂度高 应(ken)该(ding)有更好的办法吧
public class Solution {
/**
* @param heights: an array of integers
* @return: an integer
*/
public int maxArea(int[] heights) {
// write your code here
if(heights.length < 2) return 0;
int maxArea = 0;
int area = 0;
for(int i = 0 ; i < heights.length ; i++){
for(int j = i + 1 ; j < heights.length ; j++){
area = Math.min(heights[i],heights[j]) * (j - i);
maxArea = Math.max(area,maxArea);
}
}
return maxArea;
}
}