LC 速查

HOT 100索引 › B2 双指针 Two Pointers

LC 11盛最多水的容器Container With Most Water 中等

选两条竖线与 x 轴围成容器,使可容纳的水最多,返回最大容量。

思路 双指针夹逼:容量受短板限制,每次移动较短的一端才可能变大,取过程最大值。时间 O(n)。

class Solution:
    def maxArea(self, height: List[int]) -> int:
        ans, l, r = 0, 0, len(height) - 1
        while l < r:
            area = (r - l) * min(height[l], height[r])
            ans = max(ans, area)
            if height[l] < height[r]:
                l += 1
            else:
                r -= 1
        return ans
← 上一题 移动零三数之和 下一题 →