Menu
CoddyTech

Container With Most Water

你会得到一个由非负整数组成的列表 height。第 i 条线是一堵高度为 height[i] 的垂直墙,位于位置 i。任意两条线与地面都能形成一个容器,其盛水量等于较短那条线的高度乘以两条线之间的距离。其他线不会造成影响。返回一对线能够盛放的最大水量。

函数

maxArea(height: integer-array) → integer
heightinteger-array
位置 0、1、2 等处的行高
返回值integer
两行最多能容纳的水量

约束条件

  • 2 ≤ height.length ≤ 104
  • 0 ≤ height[i] ≤ 104
  • 答案最大为 108,因此可以用 32 位整数表示。

示例

输入
height = [3, 7, 2, 5, 4, 7, 3, 6]
输出
36
解释
位置 1 和 7 处的线,高度分别为 7 和 6,相距 6,可以容纳 6 × 6 = 36。两条最高的线是位置 1 和 5 处高度为 7 的线,它们只能容纳 7 × 4 = 28。
challenge icon

进阶

这里会忽略两条线之间的线段。如果每条线都是一根实心柱子,它们之间总共能积多少水?你也能用 O(n) 时间计算出来吗?

重置代码
def maxArea(height):
    # 在这里编写代码

测试 #1

测试 #2

参数

height = [3, 7, 2, 5, 4, 7, 3, 6]

预期输出

36