您的位置:首页 > 其它

LeetCode之双指针(3)

2016-01-08 10:32 232 查看

11. Container With Most Water

题目链接:

https://leetcode.com/problems/container-with-most-water/

题目描述:

给一个高度数组,代表x轴上有一些给定高度的竖线,求两条竖线与x轴构成的容器能容纳最大多少的水面积。

题目分析:

curCapacity=min(height[low],height[high])*(high-low)

感谢

http://www.th7.cn/Program/c/201505/447082.shtml

一开始没懂题几个意思啊,求能装多少水,这咋算底面积啊。

双指针,一个从头开始走,一个从尾开始走,高度小的前进,为看之后有没有高度大的来更新curCapacity。

代码:

class Solution {
public:
int maxArea(vector<int>& height) {
int low=0;
int high=height.size()-1;
int capacity=0;
int cur=0;
while(low<high){
cur=min(height[low],height[high])*(high-low);
if(capacity<cur){
capacity=cur;
}
if(height[low]>height[high]){
high--;
}
else{
low++;
}
}
return capacity;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode 双指针