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:
int maxArea(vector<int>& height) {
int l=0,r=height.size()-1;
int v=0;
while(l<r){
v=max(v,(r-l)*min(height[r],height[l]));
if(height[r]>height[l]) l++;
else r--;
}
return v;
}
};

本文介绍了一个寻找能容纳最多水的两个垂直线的算法。给定一系列非负整数,每个整数代表坐标上的一个点的高度,算法的目标是在这些点中找到两条线,使得这两条线与x轴构成的容器能容纳最多的水。文中提供了一个C++实现的例子。
1082

被折叠的 条评论
为什么被折叠?



