Skip to main content
  1. Posts/

LeetCode-11 盛最多水的容器

·1 min·

LeetCode-10 盛最多水的容器 #

Solution 1 #

我们从最长的 “底板” 开始考虑. 此时, 对于 $height[l]$ 和 $height[r]$, 唯一有可能使得容积变大的方法是移动短板. 因此我们使用移动双指针来更新答案. 代码如下:

class Solution:
    def maxArea(self, height: List[int]) -> int:
        # 目标: max(min(h[i], h[j]) * (j - i))
        n = len(height)
        l,r  = 0, n - 1
        ans = 0
        while l < r:
            ans = max(ans, min(height[l], height[r]) * (r - l))
            if height[l] < height[r]:
                l += 1
            else:
                r -= 1
        return ans