Container With Most Water

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.
双指针往里靠,嗯,第一眼看到表示用的是暴力穷举,然后果然失败。时间太长。
public class Solution {
 public int maxArea(int[] height) {
		 int result = 0;
		 int begin = 0;
		 int end = height.length-1;
		
		 while(begin != end){
			 
			 int temp = (end - begin)*(height[end]>height[begin]?height[begin]:height[end]);
			 result = temp>result?temp:result;
			 if(height[end]>=height[begin]){
				 begin++;
			 }else{
				 end--;
			 }
		 }
	        return result;
	    
	        }
}


你可能感兴趣的:(contain)