領扣 接雨水 C語言

2021-10-03 02:53:25 字數 810 閱讀 7376

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

如下圖所示

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

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

輸出: 6

int

maxnum

(int

* height ,

int heightsize)

}return pos;

}int

trap

(int

* height,

int heightsize)

i--;}

}for

(int i =heightsize-

1;i>pos;i--

)//從最後往最大值位置計算

i++;}

}return

(sum)

;}

執行結果:

通過顯示詳情

執行用時 :

8 ms

, 在所有 c 提交中擊敗了

69.73%

的使用者記憶體消耗 :

7.4 mb

, 在所有 c 提交中擊敗了

95.54%

的使用者

演算法 接雨水

給定 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 個單位...

Trapping Rain Water 接雨水問題

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

力扣c語言實現 42 接雨水

給定 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 個單位...