#11 Container With Most Water

这个题思路求解最大水面积 面积=底*max(ai,aj) 两个数值都在不停的变化 于是我们可以设想 当底最长时开始 从较小的一边开始移动 直到找到比当前边大的一条线段为止 再计算面积与最大的比较

  /**
  * @param {number[]} height
  * @return {number}
  */
  var maxArea = function(height) {
    var i = 0, j = height.length - 1,max = Math.min(height[j],height[i]) * (j - i),p,tempmax;
    while(i < j) {
      if(height[i] < height[j]) {
        p = i + 1;
        while(height[p] <= height[i] && p < j)
          p++;
        tempmax = Math.min(height[j],height[p]) * (j - p);
        if(max < tempmax)
          max = tempmax;
        i = p;
      } else {
        p = j - 1;
        while(height[p] <= height[j] && p > i)
          p--;
        tempmax = Math.min(height[i],height[p]) * (p - i);
        if(max < tempmax)
          max = tempmax;
        j = p;
      }
    }
    return max;
  };

你可能感兴趣的:(#11 Container With Most Water)