Uriel's Corner

Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
posts - 0, comments - 50, trackbacks - 0, articles - 594
给一列数组,代表1-len(matrix)每个位置的桶高,问设立左右两个边界之后最多能盛多少水
贪心,左右两个游标分别向中间移动,每次移动桶高小的游标,更新最大水量

 1 #11
 2 #Runtime: 1703 ms
 3 #Memory Usage: 23.9 MB
 4 
 5 class Solution(object):
 6     def maxArea(self, height):
 7         """
 8         :type height: List[int]
 9         :rtype: int
10         """
11         p1 = 1
12         p2 = len(height)
13         ans = min(height[0], height[-1]) * (p2 - p1)
14         while p1 < p2 - 1:
15             if height[p1 - 1] < height[p2 - 1]:
16                 p1 += 1
17             else:
18                 p2 -= 1
19             ans = max(ans, min(height[p1 - 1], height[p2 - 1]) * (p2 - p1))
20         return ans

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理