[Leetcode]Container With Most Water
2015-01-13 15:50
369 查看
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.
设两个指针p1, p2,从数组两端走~maxVal用以维护最大的容积,然后判断两个指针指向的高度哪个大,如果height[p1] > height[p2],那么把p1向中间移动肯定得不到更优的解,所以每次选较矮的一块往中间移~时间复杂度为O(N)
class Solution:
# @return an integer
def maxArea(self, height):
if height is None or len(height) == 0: return 0
p1, p2 = 0, len(height) - 1
maxVal = 0
while p1 < p2:
maxVal = max(min(height[p1], height[p2]) * (p2 - p1), maxVal)
if height[p1] > height[p2]:
p2 -= 1
else:
p1 += 1
return maxVal
..., 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.
设两个指针p1, p2,从数组两端走~maxVal用以维护最大的容积,然后判断两个指针指向的高度哪个大,如果height[p1] > height[p2],那么把p1向中间移动肯定得不到更优的解,所以每次选较矮的一块往中间移~时间复杂度为O(N)
class Solution:
# @return an integer
def maxArea(self, height):
if height is None or len(height) == 0: return 0
p1, p2 = 0, len(height) - 1
maxVal = 0
while p1 < p2:
maxVal = max(min(height[p1], height[p2]) * (p2 - p1), maxVal)
if height[p1] > height[p2]:
p2 -= 1
else:
p1 += 1
return maxVal
相关文章推荐
- [leetcode]Container With Most Water
- LeetCode_Container With Most Water
- [LeetCode]Container With Most Water
- LeetCode-11-Container With Most Water(C语言实现)
- [leetcode-11]container with most water(C)
- [LeetCode]Container With Most Water
- 【leetcode】Container With Most Water(middle)
- leetCode---Container With Most Water
- Leetcode 11-Container With Most Water
- LeetCode Container With Most Water
- 【leetcode】Container With Most Water
- LeetCode Container With Most Water
- 【leetcode刷提笔记】Container With Most Water
- leetcode-Container With Most Water
- LeetCode | Container With Most Water
- [LeetCode22]Container With Most Water
- Leetcode: Container With Most Water
- LeetCode (11): Container With Most Water
- [leetcode 11] Container With Most Water
- leetcode_11题——Container With Most Water(两个指针)