11. 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 and n is at least 2.
链接:https://leetcode.com/problems/container-with-most-water/#/description
4/9/2017
10ms, 65%
注意第10,11行,如何更新两个指针。
1 public class Solution { 2 public int maxArea(int[] height) { 3 int i = 0, j = height.length - 1; 4 int volume = Math.min(height[i], height[j]) * (j - i); 5 6 while (i < j) { 7 if (Math.min(height[j], height[i]) * (j - i) > volume) { 8 volume = Math.min(height[j], height[i]) * (j - i); 9 } 10 if (height[i] < height[j]) i++; 11 else j--; 12 } 13 return volume; 14 } 15 }
官方解释:https://leetcode.com/articles/container-most-water/
更多讨论:https://discuss.leetcode.com/category/19/container-with-most-water