采用**双指针方法**进行求解,每次移动较矮的的那个指针,直到遍历所有数组元素。
class Solution:
def maxArea(self, height: List[int]) -> int:
i, j = 0, len(height) - 1
cur_area = 0
max_area = max(cur_area, ((j - i) * min(height[j], height[i])))
while i < j:
if height[i] < height[j]:
i += 1
else:
j -= 1
cur_area = (j - i) * min(height[j], height[i])
max_area = max(cur_area, max_area)
return max_area