给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。画 n 条垂直线,使得垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
注意:你不能倾斜容器,n 至少是2。
从两边向中间移动,哪边短,哪边向中间移动
class Solution:
def maxArea(self, height):
"""
:type height: List[int]
:rtype: int
"""
_max = 0
_left = 0
_right = len(height) - 1
while _left < _right:
_max = max(_max, min(height[_left], height[_right]) * (_right - _left))
if height[_left] < height[_right]:
_left += 1
else:
_right -= 1
return _max