leetcode——Container With Most Water

来源:互联网 发布:ubuntu怎么格式化u盘 编辑:程序博客网 时间:2024/06/08 20:14

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) {        if(height.size()<=1)            return 0;        int maxWater=0;                int i=0, j=height.size()-1;        while(i<j)        {            int localMax=(j-i)*min(height[i], height[j]);            if(localMax>maxWater)                maxWater=localMax;            if(height[i]<height[j])                i++;            else                 j--;        }        return maxWater;    }};



0 0
原创粉丝点击