给定一个长度为 n
的整数数组 height
。有 n
条垂线,第 i
条线的两个端点是 (i, 0)
和 (i, height[i])
。
找出其中的两条线,使得它们与 x
轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。
说明:你不能倾斜容器。
答案:
class Solution:
def maxArea(self, height: List[int]) -> int:
left = 0
right = len(height) - 1
ans = 0
while left < right:
area = (right - left) * min(height[left] , height[right])
ans = max(ans,area)
if height[left] < height[right]:
left += 1
else:
right -= 1
return ans
思路:
1 双指针的写法
2 找到area的max值就行
3 时间复杂度O(N) 空间复杂度 O(1)