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