题目
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.
分析双指针从两头往中间压缩,证明见http://oj.leetcode.com/discuss/1074/anyone-who-has-a-o-n-algorithm中的best answer。
代码
public class ContainerWithMostWater { public int maxArea(int[] height) { if (height == null || height.length == 0) { return 0; } int max = 0; int low = 0; int high = height.length - 1; while (low < high) { if (height[low] < height[high]) { max = Math.max(max, (high - low) * height[low]); ++low; } else { max = Math.max(max, (high - low) * height[high]); --high; } } return max; } }
LeetCode | Container With Most Water,布布扣,bubuko.com
LeetCode | Container With Most Water
原文:http://blog.csdn.net/perfect8886/article/details/23334855