学习双指针法的应用
文章目录
解题思路
class Solution:
def maxArea(self, height: List[int]) -> int:
result = 0
left = 0
right = len(height) - 1
while(right > left):
area = (right - left) * min(height[left], height[right])
result = max(result, area)
if height[left] < height[right]:
left += 1
else:
right -= 1
return result
复杂度分析
- 时间复杂度: O ( N ) O(N) O(N),双指针总计最多遍历整个数组一次。
- 空间复杂度: O ( 1 ) O(1) O(1),只需要额外的常数级别的空间。