11. Container With Most Water

题目:

Given n non-negative integers a1a2, ..., an, where each represents a point at coordinate (iai). n vertical lines are drawn such that the two endpoints of line i is at (iai) 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

posted @ 2017-04-10 03:49  panini  阅读(127)  评论(0编辑  收藏  举报