給定 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 計算體積,記...