1 #include"000庫函式.h"2
//一點頭緒都沒有3//
然後就自己按自己的意思來一遍4//
好像沒有用演算法5//
16ms,讓我激動一把67
class
solution
24 t +=height[j];
25if (j == height.size() - 1) 30}
31 v += (s < e ? s : e)*(j - i - 1) - t;//
計算體積,記得減去中間的掠過體積
32 t = 0;//
下一步重新計算掠過的體積
33 i = j - 1;//
換過起始點(即終止點作為新的起始點)34}
35return
v;36}37
};38
39//
下面是看夠力扣題解之後的答案
40//
根據力扣上面的解題提示
41//
嘗試著做一下
42//
使用暴力法進行解答
43//
484ms
44class
solution
54for (int j = i; j < size; j++)
57 ans += min(max_left, max_right) -height[i];58}
59return
ans;60}
61};
62//
63//
64//
使用動態規劃20ms
65//
66class
solution
77 right_max[size - 1] = height[size - 1
];78
for (int i = size - 2; i >= 0; i--)
81for (int i = 1; i < size - 1; i++)
84return
ans;85}
86};
87//
88//
89//
使用堆疊法28ms
90//
91class
solution
106 st.push(current++);
107}
108return
ans;
109}
110};
111//
112//
使用雙指標法16ms
113//
114class
solution
125else
129}
130return
ans;
131}
132};
133134
135void
t042() ;
139 cout << s.trap(v) <140 v = ;
141 cout << s.trap(v) <142 v = ;
143 cout << s.trap(v) <144145
146 }
力扣第42題 接雨水
原文是帶著講解,過程還算詳細 上題是乙個對題目的舉例說明 本次解題中用這個圖 我認為這個圖涵蓋了可能出現的情況,講解會比較好一點 第一種方法是暴力法,時間複雜度為o n 2 空間複雜度為o 1 public inttrap02 int height int max right 0 找出右邊最高 fo...
力扣接雨水問題
思路是這樣的,先找到陣列中的最大值,然後在以他為中心,左右分割遍歷陣列,遞迴陣列,總是找最大值,計算 兩個最大值之間的存水量 最後彙總相加即可得出結果.package test public class testcasetwo int reuslt trapleft height,maxinx tr...
力扣 42 接雨水
題目 給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。上面是由陣列 0,1,0,2,1,0,1,3,2,1,2,1 表示的高度圖,在這種情況下,可以接 6 個單位的雨水 藍色部分表示雨水 感謝 marcos 貢獻此圖。示例 輸入 0,1,0,2,1,...