问题描述:
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
说明:你不能倾斜容器,且 n 的值至少为 2。
1 class Solution(object): 2 def maxArea(self, height): 3 """ 4 :type height: List[int] 5 :rtype: int 6 """ 7 #设定两个指针一个在最左一个在最右 8 #从两端往中间挤,两个指针相比,数值小的往中间靠一下 9 #直到相遇10 l = ans = 011 r = len(height)-112 maxa = 013 while l != r:14 c = (r-l)*min(height[l], height[r])15 if height[l] <= height[r]:16 l += 117 else:18 r -= 119 if c > maxa:20 maxa = c21 return maxa