题解
思路
代码
class Solution:
### 1228 双指针(52 ms,16.1 MB)
def maxArea(self, height: List[int]) -> int:
res = 0
# 初始化左、右双指针在左、右边界处
l, r = 0, len(height) - 1
# 当左、右双指针不相遇时,进行循环
while l < r:
# 最大面积取决于短板,且下一步需要移动短板
# 因为移动短板面积可能增大,而移动长板面积只会变小
if height[l] < height[r]:
res = max(res, height[l] * (r - l))
l += 1 # 更新短板
else:
res = max(res, height[r] * (r - l))
r -= 1 # 更新短板
return res