2014-10-20 11:23:39 +08:00
|
|
|
// Source : https://oj.leetcode.com/problems/container-with-most-water/
|
|
|
|
// Author : Hao Chen
|
|
|
|
// Date : 2014-06-22
|
|
|
|
|
2014-10-21 10:49:57 +08:00
|
|
|
/**********************************************************************************
|
|
|
|
*
|
2014-10-21 11:39:53 +08:00
|
|
|
* 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.
|
2014-10-21 10:49:57 +08:00
|
|
|
*
|
|
|
|
* Note: You may not slant the container.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
**********************************************************************************/
|
|
|
|
|
2014-10-20 11:23:39 +08:00
|
|
|
class Solution {
|
|
|
|
public:
|
|
|
|
int maxArea(vector<int> &height) {
|
|
|
|
int area = 0;
|
|
|
|
int i = 0;
|
|
|
|
int j = height.size()-1;
|
|
|
|
|
|
|
|
while(i<j){
|
|
|
|
int a = (j-i)* (height[i]>height[j] ? height[j] : height[i]);
|
|
|
|
area = a>area ? a : area;
|
|
|
|
height[i]>height[j] ? j-- : i++;
|
|
|
|
}
|
|
|
|
|
|
|
|
return area;
|
|
|
|
}
|
|
|
|
};
|