[leetcode: Python]11. Container With Most Water

来源:互联网 发布:什么是数据资源 编辑:程序博客网 时间:2024/06/01 08:06

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
阅读全文
0 0
原创粉丝点击