給定 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
思路:自左向右查詢,以begin找到非零的數字開始,end=beigin+1向後找,可以構成凹槽時則計算,不可以時九八begin位置的高度減1,然後就是for迴圈不斷執行
#include #includeusing
namespace
std;
int trap(vector&height)
//cout<<"begin="確定begin,end
dis=end-begin-1;//
距離
//cout<<"end="cout<<"dis="構成凹槽成功
ans+=dis*height[begin]-count;//
加入面積
//cout<<"ans="//cout<<"begin="; count=0
; }
else
}return
ans;
}int
main() ;
int ans=trap(a);
std::cout
return0;
}
LeetCode刷題筆記 42
題目 接雨水。給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。上面是由陣列 0,1,0,2,1,0,1,3,2,1,2,1 表示的高度圖,在這種情況下,可以接 6 個單位的雨水 藍色部分表示雨水 方法一 暴力法 從左到右遍歷陣列,找到當前元素左側最大...
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刷題 接雨水
給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。上面是由陣列 0,1,0,2,1,0,1,3,2,1,2,1 表示的高度圖,在這種情況下,可以接 6 個單位的雨水 藍色部分表示雨水 時間複雜度o n 空間複雜度o n int trap vector ...