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