11. 盛最多水的容器

114 阅读1分钟

11. 盛最多水的容器

下面代码,思路没有问题,但是超时了

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;
};