1. 给你 n 个非负整数 a1a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
  2. 说明:你不能倾斜容器。

例1

34- 盛最多水的容器 - 图1

  1. 输入:[1,8,6,2,5,4,8,3,7]
  2. 输出:49
  3. 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49
  1. 示例 2
  2. 输入:height = [1,1]
  3. 输出:1
  4. 示例 3
  5. 输入:height = [4,3,2,1,4]
  6. 输出:16
  7. 示例 4
  8. 输入:height = [1,2,1]
  9. 输出:2
  1. /**
  2. * @param {number[]} height
  3. * @return {number}
  4. */
  5. var maxArea = function(height) {
  6. var sum=0,i=0,j=height.length-1
  7. while(i<j){
  8. sum = Math.max(sum,Math.min(height[i],height[j])*(j-i))
  9. if(height[i]<height[j]){
  10. i++;
  11. }else{
  12. j--;
  13. }
  14. }
  15. return sum;
  16. };