title:
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 and n is at least 2.
题意:
areaMax = min(height[i], height[j])*abs(i - j)
方法一:65ms
class Solution(object):
def maxArea(self, height):
"""
:type height: List[int]
:rtype: int
"""
left = 0
right = len(height) - 1
res = 0
while left < right:
water = min(height[left], height[right]) * (right - left)
if water > res:
res = water
if height[left] < height[right]:
left += 1
else:
right -= 1
return res
方法二:65ms
class Solution(object):
def maxArea(self, height):
ans = 0
area = 0
i = 0
j = len(height)-1
while i < j:
if height[i] < height[j]:
area = height[i] * (j - i)
i += 1
else:
area = height[j] * (j - i)
j -= 1
ans = max(area, ans)
return ans