LeetCode 盛最多水的容器

2021-08-20 08:23:23 字數 868 閱讀 7500

題目:給定 n 個非負整數 a

1,a2,...,a

n,每個數代表座標中的乙個點 (i, ai

) 。畫 n 條垂直線,使得垂直線 i 的兩個端點分別為 (i, ai

) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。

思路:定義兩個指標,分別指向list的頭和尾,對應容器的左壁和右壁。隨後讓左壁和右壁不斷向中間靠攏,計算得到每次的容積值並更新容積最大的值,直到左壁》=右臂。

class solution(object):

def maxarea(self, height):

""":type height: list[int]

:rtype: int

"""max_area=0 #定義變數max_area存放容積最大值

left=0 #定義左壁的下標

right=len(height)-1 #定義右壁的下標

while(leftif(height[left]area=height[left]*(right-left) #計算此時的容器容積

left+=1

else: #當左壁的高度大於等於右壁時

area=height[right]*(right-left) #計算此時的容器容積

right-=1

max_area=max(max_area,area) #計算得到的面積值跟max_area比較

return max_area

LeetCode 盛最多水的容器

給定 n 個非負整數 a1,a2,an,每個數代表座標中的乙個點 i,ai 在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 i,ai 和 i,0 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。說明 你不能傾斜容器,且 n 的值至少為 2。圖中垂直線代表輸入陣列 1,8,...

LeetCode 盛最多水的容器

給定 n 個非負整數 a1,a2,an,每個數代表座標中的乙個點 i,ai 在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別 為 i,ai 和 i,0 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。說明 你不能傾斜容器,且 n 的值至少為 2。示例 輸入 1,8,6,2,5...

LeetCode 盛最多水的容器

給定 n 個非負整數 a1,a2,an,每個數代表座標中的乙個點 i,ai 在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 i,ai 和 i,0 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。說明 你不能傾斜容器,且 n 的值至少為 2。圖中垂直線代表輸入陣列 1,8,...