[leetcode]Container With Most Water @ Python

原题地址:https://oj.leetcode.com/problems/container-with-most-water/

题意:

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:
    # @return an integer
    def maxArea(self, height):
        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

 

posted @ 2014-06-10 10:46  南郭子綦  阅读(3300)  评论(0编辑  收藏  举报