「Leetcode系列」经典题目——盛最多水的容器

「Leetcode系列」经典题目——盛最多水的容器

image.png 大家好,我是林三心,今天给大家分享一道经典的leetcode题目——盛最多水的容器

题目

image.png

思路(首尾指针)

Alt Text

首尾指针法:两端向中间夹逼,高度较小一端向中间移动,计算当前面积,如果大于最大面积,则替换

代码

var maxArea = function(height) {
    let start = 0, // 首指针
        end = height.length - 1, // 尾指针
        max = 0; // 面积
    while (start < end) {
        // 算出较矮的那一边
        minHeight = Math.min(height[start], height[end]);
        // 算出现在的面积
        max = Math.max((end - start) * minHeight, max);
        // 算出哪边比较矮,矮的那边向中间靠拢
        minHeight === height[start] ? start++ : end--;
    }

    return max;
};
复制代码

加油!想不想要女朋友?想要的话还不上车?马上开车了哦!

分类:
前端