11-盛最多水的容器

106 阅读1分钟

11. 盛最多水的容器

分析:

使用双指针,分别让左右指针位于数组的两端,在每次移动前,计算指针之间的面积,面积的底为指针索引的差值,高为指针值中的较小值,而每次计算完移动指针的判断依据两指针中谁的值较小,移动较小的值,因为面积受限于指针中的较小值


var maxArea = function(height) {
   let right = height.length - 1
   let left = 0;
   let min = 0;
   let max = 0;
   while(left < right){
       min = height[right] > height[left] ? height[left] : height[right];
       let area = (right - left) * min;
       if(area > max) max = area;
       height[left] > height[right] ? right-- : left++;
  }
   return max;
};