11. 盛最多水的容器**【力扣】

题意理解

给定一个数组,计算任意两个数较小值乘以两个数下标的差值的积的最小值。

问题分析

数组题

双指针法

首尾各一个指针,每次移动值小的指针。

其他

使用O(n^2)的算法超时,没搞明白原因。

0805:比较小的。

链接

    int maxArea(vector& height) {
        int len = height.size();
        int i = 0, j = len - 1;
        int maxArea = INT_MIN;
        while (i < j)
        {
            int currArea = (j - i) * min(height[i], height[j]);
            maxArea = max(maxArea, currArea);
            if (height[i] < height[j]) //双指针之间比较,移动小的
                i ++;
            else
                j --;
        }
        return maxArea;
    }

 

你可能感兴趣的:(算法,工作刷题)