【leetcode】Container With Most Water

104 milli secs过大集合,时间复杂度为O(n)

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 maxArea(vector<int> &height) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        if(height.size() < 2)
        return 0;
	int i = 0;
	int j = height.size() - 1;
	int area = 0;
	int max = 0 ;
	while(i < j)
	{
		if(height[i] < height[j])
		{
			
			area = height[i] * (j - i);
			if(area > max)
                max = area;
            i ++ ;
		}
		else
		{
			
			area = height[j] * (j - i);
			if(area > max)
			    max = area;
            j -- ;
		}	
		
	}
	return max;
    }
};

你可能感兴趣的:(【leetcode】Container With Most Water)