Given n non-negative integers a1, a2, …, an , where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.
Note: You may not slant the container and n is at least 2.
Input: [1,8,6,2,5,4,8,3,7]
Output: 49
class Solution {
public int maxArea(int[] height) {
int length=height.length;
//i从左开始,j从右开始
int i=0,j=length-1;
int area=(height[j]>height[i]?height[i]:height[j])*(length-1);
while(i<j){
if((height[j]-height[i])>=0){
area=area>height[i]*(j-i)?area:height[i]*(j-i);
i++;
}
else{
area=area>height[j]*(j-i)?area:height[j]*(j-i);
j--;
}
}
return area;
}
}
好easy,要是编程都像这样就好了,为数不多一遍过的。