[LeetCode]Container With Most Water

时间:2014-05-15 02:29:03   收藏:0   阅读:387

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.

bubuko.com,布布扣

从两端开始计算,就是求由两条线和X轴组成的最大图形,可以盛水的最大值(由线得最小值和宽度的乘积决定)

class Solution {
public:
    int maxArea(vector<int> &height) {
    int ans = 0;
	int leftPos, rightPos;
	leftPos = 0;
	rightPos = height.size() - 1;
	while(leftPos < rightPos)
	{
		ans = max(ans, min(height[leftPos], height[rightPos]) * (rightPos - leftPos));
		if (height[leftPos] < height[rightPos])
		{
			leftPos++;
		}
		else
		{
			rightPos--;
		}
	}
	return ans;
    }
};



[LeetCode]Container With Most Water,布布扣,bubuko.com

评论(0)
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!