【leetcode系列】【py3】【中等】盛最多水的容器
题目:
原题链接: https://leetcode-cn.com/problems/container-with-most-water/
解题思路:
典型的双指针问题
开始的时候,两个指针指向首尾,并计算面积
因为面积取决于矮的一边,希望矮的一边变的更高,从而使整体面积更大
所以每次都将更短的一边,向另外一边移动,并计算面积,比对当前面积和最大面积,并记录最大面积
直到首尾双指针相遇,返回最大面积
代码实现:
class Solution:
def maxArea(self, height: List[int]) -> int:
max_area, left, right = 0, 0, len(height) - 1
while left < right:
curr_area = (right - left) * min(height[left], height[right])
max_area = max(max_area, curr_area)
if height[left] > height[right]:
right -= 1
else:
left += 1return max_area