LeetCode11. Container With Most Water最容易理解的解法

Given n non-negative integers a1a2, ..., an, where each represents a point at coordinate (iai). n vertical lines are drawn such that the two endpoints of line i is at (iai) 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 getArea(vector<int>& height, int left, int right)
{
	int h = height[left] > height[right] ? height[right] : height[left];
	return h*(right - left);
}

int maxArea(vector<int>& height) {
	int left = 0;
	int right = height.size() - 1;
	int max = 0;
	while (left < right) {
		int m = getArea(height, left, right);
		if (m > max){
			max = m;
		}
		if (height[left] < height[right]) {
			left++;
		}
		else {
			right--;
		}
	}
	return max;
}

};





你可能感兴趣的:(LeetCode,数组,面试题)