没看答案,用双指针遍历height数组的左右两端,对于相对短的一边就移动(木桶效应),并不断更新答案。
class Solution: def maxArea(self, height: List[int]) -> int: n = len(height) left, right = 0, n-1 res = 0 while left < right: if height[left] <= height[right]: res = max(res, (right - left) * height[left]) left += 1 else: res = max(res, (right - left) * height[right]) right -= 1 return res