11. Container With Most Water

Posted 小河沟大河沟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11. Container With Most Water相关的知识,希望对你有一定的参考价值。

欢迎fork and star:Nowcoder-Repository-github

11. Container With Most Water

题目

Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.

Note: You may not slant the container and n is at least 2. 

解析

  • 再次体会到双指针操作的厉害了
  • 理解题意为什么++--就可以实现取最大的容器,容器的面积由短板决定!!!

// 11. Container With Most Water 
class Solution_11 {
public:
    int maxArea(vector<int> &height) {
        int start = 0;
        int end = height.size() - 1;

        int max_area = 0;
        while (start<end)
        {
            max_area = max(max_area, min(height[start],height[end])*(end-start) );
            if (height[start]<=height[end]) 
            {
                start++;
            }
            else
            {
                end--;
            }
        }
        return max_area;
    }
};

题目来源

以上是关于11. Container With Most Water的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode11-Container With Most Water

leetcode 11. Container With Most Water

11. Container With Most Water

11. Container With Most Water

LeetCode11. Container With Most Water 解题报告

11. Container With Most Water