leetcode - Container With Most Water

2015-01-27 14:14:43 · 作者: · 浏览: 30

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.

class Solution {
public:
    int maxArea(std::vector
  
    &height) {
        int left = 0, right = height.size()-1;
        int vol, maxvol = (right-left)*std::min(height[left], height[right]);
        int l=left, r=right;
        while(left
   
    maxvol){ maxvol = vol; } } if(height[left] > height[right]){ while(height[--right]<=height[r]); vol = (right-left)*std::min(height[left], height[right]); r = right; if(vol>maxvol){ maxvol = vol; } } } return maxvol; } };