/*
11. Container With Most Water My Submissions QuestionEditorial Solution
Total Accepted: 74897 Total Submissions: 217340 Difficulty: Medium
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.
*/
/*
解题思路:
采用木桶原理,两边有两块隔板。每次以最短的为桶的高,宽度为两个隔板之间的距离。每次算出面积后取最大者
,然后短板向内侧移动,依次下去直到两个隔板相遇。
代码如下:
*/
class Solution {
public:
int maxArea(vector<int>& height) {
//从两边向内收缩,利用木桶原理
int res=0;
int left=0,right=height.size()-1;
while(left<right){
if(height[left]<height[right]){
res=max(res,height[left]*(right-left));
++left;
}else{
res=max(res,height[right]*(right-left));
--right;
}
}
return res;
}
};
LeetCode——011
最新推荐文章于 2020-07-24 18:18:44 发布