题目描述

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。

找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。

**说明:**你不能倾斜容器。

思路

可以用贪心算法求解。贪心的思想是一个指针从前向后遍历,另一个指针从后向前遍历,每次移动最小的那个指针。

最终答案:

class Solution:
    def maxArea(self, height: List[int]) -> int:
        l, r = 0, len(height)-1
        mArea = 0
        while l < r:
            mArea = max(mArea, (r-l)*min(height[l], height[r]))
            if height[l] < height[r]:
                l += 1
            else:
                r -= 1
        return mArea

想得太多

遇事不决贪心?