盛最多水的容器
解决方式
- 双指针
python
def maxArea(height):
max_area = 0
left = 0
right = len(height) - 1
while left < right:
max_area = max(max_area, min(height[left], height[right]) * (right - left))
if height[left] < height[right]:
left += 1
else:
right -= 1
return max_area
复杂度
时间复杂度:O(n)
空间复杂度:O(1)
- 暴力解法
python
def maxArea2(height):
max_area = 0
for i in range(len(height)):
for j in range(i+1, len(height)):
max_area = max(max_area, min(height[i], height[j]) * (j - i))
return max_area
复杂度
时间复杂度:O(n^2)
空间复杂度:O(n)