Leetcode 42 接雨水問題(困難)

2021-10-04 18:50:33 字數 654 閱讀 3561

題目描述:

給定 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

思路:

暴力解法:(超時)求出每個位置能夠接的水,然後迴圈全部相加;

備忘錄優化暴力解法:出每個位置能夠接的水,並記錄下來,這樣避免了每次都重新求;

雙指標解法:用左右兩根指標從兩頭走,這樣可以節省空間。

// 暴力:超時

// 求出每個位置能夠接的水,然後迴圈全部相加

class solution

res += ((r_max& height)

for(int j=1; j& height)

else

}return res;}};

LeetCode 42 接雨水 困難

給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。上面是由陣列 0,1,0,2,1,0,1,3,2,1,2,1 表示的高度圖,在這種情況下,可以接 6 個單位的雨水 藍色部分表示雨水 感謝 marcos 貢獻此圖。示例 輸入 0,1,0,2,1,0,1...

(LeetCode 42)接雨水 思維題

42.接雨水 給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。上面是由陣列 0,1,0,2,1,0,1,3,2,1,2,1 表示的高度圖,在這種情況下,可以接 6 個單位的雨水 藍色部分表示雨水 感謝 marcos 貢獻此圖。示例 輸入 0,1,0,...

LeetCode 42 接雨水 Java實現

給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。上面是由陣列 0,1,0,2,1,0,1,3,2,1,2,1 表示的高度圖,在這種情況下,可以接 6 個單位的雨水 藍色部分表示雨水 感謝 marcos貢獻此圖。示例 輸入 0,1,0,2,1,0,1,...