[LeetCode]42. Trapping Rain Water雨水填坑
生活随笔
收集整理的這篇文章主要介紹了
[LeetCode]42. Trapping Rain Water雨水填坑
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
這個題難點在于無法保證右邊是不是有更高的墻可以保證擋住水
雙指針可以解決
/*兩邊指針保證,保證另外一邊肯定有能擋住水的地方。如果從一邊開始,不考慮另一邊,是無法保證右邊肯定有擋水的墻,如果右邊只都比這個值小,遍歷的時候是不能增加結果的雙指針每次取較小的一方開始遍歷*/public int trap(int[] height) {if (height.length<3) return 0;int l = 0;int r = height.length-1;int res = 0;while (l<r){int min = Math.min(height[l],height[r]);if (min==height[l]){//從左邊開始遍歷,遇到更高的就退出while (++l<r&&height[l]<=min)res+=min-height[l];}else{while (l<--r&&height[r]<=min)res+=min-height[r];}}return res;}
?
轉載于:https://www.cnblogs.com/stAr-1/p/8426124.html
總結
以上是生活随笔為你收集整理的[LeetCode]42. Trapping Rain Water雨水填坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 性激素六项什么时候查最好
- 下一篇: 治男性不育用什么方法治