LeetCode 11. 盛最多水的容器

题目

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。

思路

双指针,两边逼近找出最大面积

代码

class Solution {
public:
    int maxArea(vector<int>& height) 
    {
        int max_water = 0;
        int i =0;
        int j = height.size()-1;

        while(i<j)
        {
            if(height[i] > height[j])
            {
                max_water = max(max_water, (j-i)* height[j--]);
            }
            else
            {
                max_water = max(max_water, (j-i)* height[i++]);
            }
        }

        return max_water;

    }
};

你可能感兴趣的:(C++算法与数据结构,leetcode,c++)