下面代码,思路没有问题,但是超时了
var maxArea = function (arr) {
var len = arr.length;
var res = 0
for (var i = 0; i < len; i++) {
for (var j = i + 1; j < len; j++) {
var h = Math.min(arr[i], arr[j])
res = Math.max(res, h * (j - i))
}
}
return res
};
换方法后的代码,其实就是用,排除法,做删减操作
var maxArea = function (arr) {
var left = 0;
var right = arr.length - 1;
var res = 0;
while (left < right) {
var area = Math.min(arr[left], arr[right]) * (right - left);
res = Math.max(res, area);
if (arr[left] <= arr[right]) {
left++;
}else {
right--;
}
}
return res;
};