题目大意:
有一个高度的数组,从中找出两个高度,这两个高度形成一个水桶,求出能够满足随同的最大体积。
解法:
1、两层for循环,每两个高度之间算一下体积,返回最大的体积(估计会超时)。
2、设置一个两个指针,一个指向头,一个指向尾部。算一下体积,如果头指针高度小于尾指针高度,头指针加一,反之尾指针加一,如此来遍历整个数组。
1 public class Solution { 2 public int maxArea(int[] height) { 3 4 int left = 0; 5 int right = height.length-1; 6 7 int contain = 0; 8 while(left != right) 9 {10 int h = (height[left] < height[right])? height[left]:height[right];11 contain = (contain > (right - left)*h)? contain:(right - left)*h;12 if(height[left] < height[right])13 left++;14 else15 right--;16 17 }18 19 return contain;20 }21 }