首页 > 代码库 > Container With Most Water

Container With Most Water

Given n non-negative integers a1a2, ..., an, where each represents a point at coordinate (iai). n vertical lines are drawn such that the two endpoints of line i is at (iai) 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.

思路:两根线中,短线决定了总面积。所以从左右两边向中间靠拢

代码:

class Solution {public:    int maxArea(vector<int> &height) {        int max=0;        int tempArea=0;        int size=height.size();        if(size==0)             return 0;        int left=0;        int right=size-1;        while(left<right){            tempArea=min(height[left],height[right])*(right-left);            height[left]<=height[right]?++left:--right;            if(tempArea>max) max=tempArea;        }        return max;    }};

 

Container With Most Water