Container With Most Water
Description:
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.
Example
Given [1,3,2], the max area of the container is 2.
Notice
You may not slant the container.
Code:
class Solution:
"""
@param heights: a vector of integers
@return: an integer
"""
def maxArea(self, heights):
# write your code here
left, right = 0, len(heights) - 1
res = 0
while left < right:
res = max(res, (right - left) * min(heights[left], heights[right]))
if heights[left]<heights[right]:
left += 1
else:
right -= 1
return res