leetcode刷題之路42 接雨水

2022-08-13 05:15:13 字數 787 閱讀 4240

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

using

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 ...