/**
 * @param {number[]} height
 * @return {number}
 */
// 双指针翻转法
var maxArea = function(height=[]) {
   let left=0,right=height.length-1,currentVolume,maxVolume=0;
//    从两端开始计算面积
   while(left<right){
    // 短板效应,能蓄多少水总取决于最小的那块板子
    if(height[left]<height[right]){
        currentVolume=height[left]*(right-left);
        left++;
    }else{
        currentVolume=height[right]*(right-left);
        right--;
    }
    if(currentVolume>maxVolume){
        maxVolume=currentVolume;
    }
   }
   return maxVolume;
};
console.log(maxArea([1,1,2,4]));

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐