使用暴力破解
发现超时
var maxArea = function(height) {
let maxV=0;
for(let i=0;i<height.length;i++)
{
for(let j=i+1;j<height.length;j++)
{
let minHeight=Math.min(height[j],height[i])
let s=minHeight*(j-i);
if(maxV<s)
{
maxV=s;
}
}
}
return maxV;
};
使用双指针来实现
/**
* @param {number[]} height
* @return {number}
*/
var maxArea = function(height) {
let maxV=0;
//定义左指针
let left=0;
//定义右指针
let right=height.length-1;
while(left<right)
{
//判断左右指针指向元素哪个大
let minHeight=Math.min(height[left],height[right])
let s=minHeight*(right-left);
如果有更大的容器则修改maxV变量
if(maxV<s)
{
maxV=s;
}
//如果左指针指向的值小于右指针则左指针++
if(height[left]<height[right])
{
left++;
}
else
{
right--;
}
}
return maxV;
};