思路
双指针,每次从短指针向长指针移动。
解释:以短指针为其中一条边的所有情况里面,一开始长指针没移动之前,面积是最大的,因为此时宽最大。
代码实现
class Solution:
def maxArea(self, height: List[int]) -> int:
maxarea = 0
l = 0
r = len(height) - 1
while l < r:
maxarea = max(maxarea, min(height[l], height[r])*(r-l))
if height[l] < height[r]:
l += 1
else:
r -= 1
return maxarea
执行结果
执行用时 : 84 ms, 在Container With Most Water的Python3提交中击败了75.00% 的用户
内存消耗 : 14.2 MB, 在Container With Most Water的Python3提交中击败了98.56% 的用户