11. Container With Most Water

给一个非负数组A,元素们是A[i], i=0,...,n-1. 索引i代表x坐标,值A[i]表示高度.索引i与A[i],既(i, A[i])表示了垂直于x轴的线段. 请找出两条线段,与x轴组成的桶最多能装多少水?
人家想法:
先从底最宽搜起.两个边找最矮的移动,计算容积,保留最大值,循环条件 left < right.
自己代码:
(O(n)) time, (O(1)) space.

int maxArea(vector<int>& A) {
	int l = 0, r = A.size() - 1, water = 0, h;
	while (l < r) {
		h = min(A[l], A[r]);
		water = max(water, h * (r - l));
		while (A[l] <= h && l < r) //注意不能A[l]==h
			l++;
		while (A[r] <= h && l < r)
			r--;
	}
	return water;
}
原文地址:https://www.cnblogs.com/ZhongliangXiang/p/7384947.html