演算法 接雨水

2021-10-16 13:31:46 字數 697 閱讀 4762

給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。

示例 1:

輸入:height = [0,1,0,2,1,0,1,3,2,1,2,1]

輸出:6

解釋:上面是由陣列 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度圖,在這種情況下,可以接 6 個單位的雨水(藍色部分表示雨水)。

/**

* 所以我們可以認為如果一端有更高的條形塊(例如右端),積水的高度依賴於當前方向的高度(從左到右)。當我們發現另一側(右側)的條形塊高度不是最高的,我們則開始從相反的方向遍歷(從右到左)。

* 我們必須在遍歷時維護 \textleft_max 和 \textright_max ,但是我們現在可以使用兩個指標交替進行,實現 1 次遍歷即可完成。

* @param height

* @return

*/public

inttrap

(int

height)

else

++left;

}else

else

--right;}}

return ans;

}

演算法練習 接雨水問題

給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。示例 輸入 0,1,0,2,1,0,1,3,2,1,2,1 輸出 6 先找出最高的柱子,然後從兩邊向其遍歷,如果後乙個高度比前乙個柱子高度低,則可以存水,存水量是兩根柱子的差值 public stati...

Trapping Rain Water 接雨水問題

描述 給定 n 個非負整數表示每個寬度為1的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。解法一 單調棧呼叫 乙個棧存的數值遞減,如果當前元素小於棧頂元素,則進棧 如果大於棧頂元素,先彈出棧頂元素,然後看棧中的前乙個元素 class solution if height top heigh...

力扣演算法題 042接雨水

1 include 000庫函式.h 2 一點頭緒都沒有3 然後就自己按自己的意思來一遍4 好像沒有用演算法5 16ms,讓我激動一把67 class solution 24 t height j 25if j height.size 1 30 31 v s e s e j i 1 t 計算體積,記...