leetcode-Container With Most Water

来源:互联网 发布:vb for循环教学设计 编辑:程序博客网 时间:2024/05/30 12:30

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


0 0
原创粉丝点击