Question
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.
Hide Tags Array Two Pointers
Show Similar Problems
Solution
Get idea from here
time complexity: O(n)
space complexity: O(1)
two points methods.
class Solution(object):
def maxArea(self, height):
"""
:type height: List[int]
:rtype: int
"""
if height==None or len(height)==0:
return 0
l, r = 0, len(heigh)-1
maxs = 0
while l<r:
maxs = max(maxs, min(height[l],height[r])*(r-l))
if height[l]<height[r]:
l += 1
else:
r -= 1
return maxs