盛最多水的容器【双指针】
Problem: 11. 盛最多水的容器
文章目录
- 思路 & 解题方法
- 复杂度
- Code
思路 & 解题方法
之前其实做过一次这个题目,但是已经很久远了。再拿到这个题,是真的想不出来如何进行双指针。主要就是起始点需要最左和最右开始,然后不断更改矮的那个边界。
复杂度
时间复杂度:
添加时间复杂度, 示例: O ( n ) O(n) O(n)
空间复杂度:
添加空间复杂度, 示例: O ( n ) O(n) O(n)
Code
class Solution:def maxArea(self, height: List[int]) -> int:left, right = 0, len(height) - 1ans = 0while left < right:ans = max((right - left) * min(height[left], height[right]), ans)if height[left] < height[right]:left += 1else:right -= 1return ans