/*
11.Container With Most Water,两个板的最大容量
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 and n is at least 2.
*/
11.Container With Most Water,两个板的最大容量
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 and n is at least 2.
class Solution {
public:
vector<int> begin;
vector<int> ibegin;
vector<int> end;
vector<int> iend;
int maxArea(vector<int>& height) {
if(height.size()<=1) return 0;
begin.push_back(height[0]);
ibegin.push_back(0);
end.push_back(height[1]);
iend.push_back(1);
for(int i=1;i<height.size();i++){
if(begin[begin.size()-1]<height[i]){
begin.push_back(height[i]);
ibegin.push_back(i);
}
if(end[end.size()-1]<=height[i]){
end[end.size()-1] = height[i];
iend[end.size()-1] = i;
}else{
end.push_back(height[i]);
iend.push_back(i);
}
}
int max=0;
for(int i=0;i<begin.size();i++){
for(int j=0;j<end.size();j++){
if(ibegin[i]<iend[j]){
int area = (begin[i]<end[j]?begin[i]:end[j])*(iend[j]-ibegin[i]);
if(area>max)
max=area;
}
}
}
return max;
}
};
*/