[11]Container With Most Water

来源:互联网 发布:英镑符号 mac系统 编辑:程序博客网 时间:2024/05/18 00:10

【题目描述】

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.

Subscribe to see which companies asked this question

【思路】.

容器能装多少水取决于最短的木板有多长,所以从0和n-1两头开始计算面积,并同时保持现有的木板长度最长,不然则移到下一木板计算盛水面积。

【代码】

class Solution {public:    int maxArea(vector<int>& height) {        int n=height.size();        int area=0;        int ans=INT_MIN;         int i=0;        int j=n-1;        while(i<j){            area=(j-i)*min(height[j],height[i]);            ans=max(area,ans);            if(height[j]>=height[i]){                 i++;            }            else{                j--;            }        }        return ans;    }};


0 0
原创粉丝点击