您的位置:首页 > 大数据 > 人工智能

LeetCode:Container With Most Water

2014-06-18 14:01 477 查看
思路:假设最左边和最右边两根垂直线,它们和x轴形成一个桶,这个桶的面积就由直线之间的距离乘以它们中最低的高度,为了扩大桶的面积,必须放弃当前高度最低的桶,因为只要它存在,最低高度就不会变,而现在横向距离已经是最大,扩大距离是不可能的,所以,只能是舍弃最短高度的直线,左边最短,向右移动,右边最短,向左移动。

code:

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