雙指標遍歷 滑動視窗 42 接雨水

2022-08-09 15:51:15 字數 791 閱讀 1148

6. 42_接雨水

上面是由陣列 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度圖,在這種情況下,可以接 6 個單位的雨水(藍色部分表示雨水)

*//*

暴力解, o(n²),o(1)

*/class solution

for (int j = i; j < size; j++)

ans += math.min(leftmax, rightmax) - height[i];

}return ans;

}}/*

動態程式設計 o(n),o(n)

*/class solution

rightmax[len - 1] = height[len - 1];

for (int i = len - 2; i >= 0; i--)

for (int i = 1; i < len - 1; i++)

return ans;

}}/*

棧的應用, o(n),o(n)(單調遞減棧)

*/class solution

st.push(cur++);

}return ans;

}}/*

雙指標,o(n),o(1)

*/class solution

else

}return ans;}}

42 接雨水 雙指標

對於乙個較低的坑來說,其儲水量高度取決於左側最高柱與右側最高柱的較小高度 可以用兩個指標,分別從左右兩邊往中間逼近,左側或者右側的儲水量只取決於當前一側的高度差 if len height 0 return 0left,right 0,len height 1 left max,right max ...

LeetCode 42 接雨水 雙指標

主要方法 雙指標 正反遍歷 解釋說明 1.正向遍歷 先確定池子左牆初始化為第乙個bar,從第 2 個 bar 開始遍歷右牆,同時記錄中間的 bar 高度和,當右牆大於等於左牆的時候就有第一灘積水了,左右牆距離 左牆高度 中間 bar 和 就是這灘積水的體積,同時將右牆認定為下乙個左牆,同時重新記錄b...

Leetcode42 接雨水 雙指標法

本題是這樣的 42.接雨水 給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。題目給出的一眼就能了然題目要問的是什麼。很明顯,某一列能裝多少水,取決於該列左側和右側的高度的最小值。最無腦的做法就是,對每一列求其左右的最大值,也就是用額外的兩個o n 大...