11. 盛最多水的容器
解法一:暴力(超时)
class Solution:
def maxArea(self, height: List[int]) -> int:
maxVal = 0
n = len(height)
for i in range(n):
for j in range(i+1, n):
maxVal = max(min(height[i], height[j]) * (j-i), maxVal)
return maxVal解法二:双指针
class Solution:
def maxArea(self, height: List[int]) -> int:
maxVal = 0
l, r = 0, len(height)-1
while l < r:
maxVal = max(min(height[l], height[r]) * (r-l), maxVal)
if height[l] < height[r]:
l += 1
else:
r -= 1
return maxVal最后更新于