美文网首页
11.盛最多水的容器

11.盛最多水的容器

作者: 最尾一名 | 来源:发表于2020-03-02 23:02 被阅读0次

    原题

    https://leetcode-cn.com/problems/container-with-most-water/

    解题思路

    用双指针分别指向数组的首尾。
    面积 := 较短木板长度 * 容器宽度
    当容器宽度缩小时,只有较短木板长度增加,面积才可能增加。
    所以我们把 height 较小的指针向内移。

    代码

    /**
     * @param {number[]} height
     * @return {number}
     */
    var maxArea = function(height) {
        if (!height.length) return 0;
        let max = 0, start = 0, end = height.length - 1;
        while (start < end) {
            const current = (Math.min(height[start], height[end])) * (end - start);
            if (current > max) {
                max = current;
            }
            if (height[start] > height[end]) {
                --end;
            } else {
                ++start;
            }
        }
        return max;
    };
    

    复杂度

    • 时间复杂度 O(N)
    • 空间复杂度 O(1)

    相关文章

      网友评论

          本文标题:11.盛最多水的容器

          本文链接:https://www.haomeiwen.com/subject/epawkhtx.html