题目: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.
思路:
本题和之前的 trapping rain water 没有较大关系,只是单纯的询问我们两根线连起来会不会有最大值。
所以思路就是双指针法,两边开始,以最小值高度为长,做乘积。谁小谁往里走。
代码:
class Solution { public: int maxArea(vector<int>& height) { int i=0,j=height.size()-1; // 1 2 3 4 5 int res=0,tem=0; while(i<=j){ tem=(j-i)*min(height[i],height[j]); if(height[i]>height[j]){ j--; }else if(height[i]<height[j]){ i++; }else{ i++;j--; } res=max(res,tem); } return res;// } };