LeetCode-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.

简单题,前后夹逼,哪一边板较短,就从哪一边往中间靠扰,靠扰过程中不断取面积最大值。

AC代码

class Solution {
public:
    int maxArea(vector<int> &height) {
        int res = 0;
       int begin = 0, end = height.size() - 1;
       while(begin <= end){
           int miny = height[end] - height[begin] > 0 ? height[begin] : height[end];
           if((end - begin) * miny > res)
                res = (end - begin) * miny;
           if(height[begin] <= height[end])
                begin++;
           else
                end--;
       }
       return res;
    }
};



你可能感兴趣的:(LeetCode)