最近再刷leetcode,除了鏈表之外的都用python 實現(xiàn),貼出一些代碼,希望指正.
問題描述:
原文中說了大堆,用下面這幅圖演示.
輸入是一串坐標,然后隨便兩個和x軸連線之間構(gòu)成一個面積,要求的是最大的面積.
11_Container_Water.gif
解決思路
分別從兩邊同時向中間遍歷,比較坐標值,小的向里縮之后重合,每次計算大小之前先求面積,迭代出最大的一個.輸出.
class Solution(object):
def maxArea(self, height):
"""
:type height: List[int]
:rtype: int
"""
# print(height)
area_max = 0
i = 0
j = len(height) - 1
while i != j:
tmp_max = (j - i) * min(height[i], height[j])
area_max = max(tmp_max, area_max)
if height[i] < height[j]:
i = i + 1
else:
j = j - 1
return area_max
solution = Solution()
list1 = [3, 2, 5, 7, 3, 5]
print(solution.maxArea(list1))