题目
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.
思路
双指针,每次移动高度比较小的指针。参考
代码
class Solution:
def maxArea(self, height):
"""
:type height: List[int]
:rtype: int
"""
maxNum = 0
left = 0; right = len(height) - 1
while left < right:
maxNum = max(maxNum, (right - left) * min(height[right],height[left]))
if height[left] < height[right]: left += 1
else: right -= 1
return maxNum