資料結構與演算法 Leetcode11

2021-10-08 23:43:28 字數 1023 閱讀 4294

給你 n 個非負整數 a1,a2,…,an,每個數代表座標中的乙個點 (i, ai) 。在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。

說明:你不能傾斜容器,且 n 的值至少為 2。

輸入:[1,

8,6,

2,5,

4,8,

3,7]

輸出:49

思路:其實就是求最大的長方形面積,我的方法比較暴力,先列出面積公式:

sns=

min(height[left]

,height[right])*

(right-left)

然後開始遍歷縱座標的值,大概長度是一半的橫座標,時間複雜度為o(n)

**如下:

class

solution

:def

maxarea

(self, height: list[

int])-

>

int:

ifnot height:

return

none

size=

0 left=

0 right=

len(height)-1

while leftsns=

min(height[left]

,height[right])*

(right-left)

max_s=

max(sns,size)

size=max_s

if height[left]

: left+=

1else

: right-=

1return max_s

這個也可以理解為採用雙指標的,left從左向右,right從右向左,最後找到面積最大的值。

資料結構與演算法分析 leetcode筆記

深度學習知識及資源分享,學習交流,共同進步 leetcode 820 1 題目 給定乙個單詞列表,我們將這個列表編碼成乙個索引字串 s 與乙個索引列表 a。例如,如果這個列表是 time me bell 我們就可以將其表示為 s time bell 和 indexes 0,2,5 對於每乙個索引,我...

資料結構與演算法 演算法 演算法和資料結構

資料結構與演算法 演算法 好吧,在這裡,您被優秀或優秀的軟體開發人員所隔開。在這種情況下,我會告訴您一開始或至少在我的情況下,並且我知道大多數時候,對於我認識的大多數人,您會覺得自己是乙個無能的人或白痴。基本上,我怎麼可能不理解這一點,然後您會感到沮喪。在這種情況下,我會告訴您情況並不像您想的那麼糟...

資料結構與演算法 leetcode155最小棧

設計乙個支援 push pop top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 輸入 minstack push push push getmin pop top getmin...