题目描述
方法:
1. 暴力遍历比较
class Solution:
def maxArea(self, height: List[int]) -> int:
n = len(height)
v = 0
for i in range(n):
left = i
right = n - 1
if height[left] == 0:
continue
while right > left:
if v // height[left] > right-left:
right -= 1
continue
tmp = (right-left) * min(height[left],height[right])
# print(left,right,tmp)
v = max(v,tmp)
right -= 1
return v
2. 双指针
class Solution:
def maxArea(self, height: List[int]) -> int:
n = len(height)
i,j = 0,n-1
vmax = 0
while i<j:
v = min(height[i], height[j]) * (j-i)
vmax = max(v,vmax)
if height[i] < height[j]:
i+=1
else:
j-=1
return vmax