标签:
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.
You may not slant the container.
Given [1,3,2]
, the max area of the container is 2
.
Analysis:
Begin with the first point and last point, calculate the container area. Move the first point forward or last point backward if it is smaller.
1 public class Solution { 2 /** 3 * @param heights: an array of integers 4 * @return: an integer 5 */ 6 public int maxArea(int[] height) { 7 if (height == null || height.length <= 1) return 0; 8 9 int max = 0; 10 int i = 0; 11 int j = height.length - 1; 12 while (i < j) { 13 if (max < Math.min(height[i], height[j]) * (j - i)) { 14 max = Math.min(height[i], height[j]) * (j - i); 15 } 16 if (height[i] < height[j]) { 17 i++; 18 } else { 19 j--; 20 } 21 } 22 return max; 23 } 24 }
标签:
原文地址:http://www.cnblogs.com/beiyeqingteng/p/5669071.html