程式設計題 leetcode42 接雨水

2021-10-03 21:14:52 字數 1073 閱讀 1591

題目描述

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

題目分析
1、我們可以按列進行分析,用乙個迴圈來迴圈每一列

2、迴圈到第i列的時候,左邊有乙個最大值max_left和右邊右邊有乙個最大值max_right,我們可以發現,只有當height[i]都小於上面的這兩個值的時候才會有雨水積累

3、寫出**,可以發現max_left我們可以在遍歷height的時候就可以隨手記錄,但max_right卻需要不斷的迴圈

//**1

class

solution}if

((max_left>height[i])&&

(max_right>height[i]))

if(height[i]

>max_left) max_left=height[i];}

return res;

}}

由於上面的max_right需要我們每次迴圈進行判斷,所以我們在想能不能max_right和max_left一樣,僅僅遍歷一遍就可以確定它的值

1、在右邊高的時候從左往右遍歷

2、在左邊高的時候從右往左遍歷

//**2:雙指標法

class

solution

left++;}

else

right--;}

}return res;

}}

(LeetCode 42)接雨水 思維題

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

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 接雨水 Java實現

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