diff --git a/notes/src/SUMMARY.md b/notes/src/SUMMARY.md index 067634c..9d79ea9 100644 --- a/notes/src/SUMMARY.md +++ b/notes/src/SUMMARY.md @@ -182,4 +182,12 @@ - [day 57](./day57.md) - [647. 回文子串](./day56/lc647.md) - [516.最长回文子序列](./day56/lc516.md) +- [day 58](./day58.md) + - [739. 每日温度](./day58/lc739.md) + - [496.下一个更大元素 I](./day58/lc496.md) +- [day 59](./day59.md) + - [503. 下一个更大元素II](./day58/lc503.md) + - [42. 接雨水](./day58/lc42.md) +- [day 60](./day60.md) + - [84. 柱状图中最大的矩形](./day58/lc84.md) - [remains](./remains.md) \ No newline at end of file diff --git a/notes/src/day58.md b/notes/src/day58.md new file mode 100644 index 0000000..e69de29 diff --git a/notes/src/day58/lc42.md b/notes/src/day58/lc42.md new file mode 100644 index 0000000..5fea138 --- /dev/null +++ b/notes/src/day58/lc42.md @@ -0,0 +1,27 @@ +# 42. 接雨水 + +需要考虑前两个 + +```cpp +class Solution { +public: + int trap(vector& v) { + int res = 0; + vectors; + for(int i=0;i nextGreaterElement(vector&v1,vector&v2) { + vectorres(v1.size(),-1); + unordered_map m; // key:下标元素,value:下标 + for (int i = 0; i < v1.size(); i++) { + m[v1[i]] = i; + } + vectors; + for(int i=0;i nextGreaterElements(vector& v) { + vectorres(v.size(),-1); + vectors; + int n = v.size(); + for(int i=0;i dailyTemperatures(vector& v) { + vectorres(v.size(),0); + // 1 + // 1 1 + // 1 1 1 + vectors; + for(int i=0;i& v) { + int res = 0; + vectorrightfirstsmallerthanmine(v.size(),v.size()); + vectorleftffirstsmallerthanmine(v.size(),-1); + vectors; + for(int i=0;iv[i]){ + int idx = s.back(); + s.pop_back(); + rightfirstsmallerthanmine[idx]=i; + } + s.push_back(i); + } + s.clear(); + for(int i=v.size()-1;i>=0;i--){ + while(!s.empty()&&v[s.back()]>v[i]){ + int idx = s.back(); + s.pop_back(); + leftffirstsmallerthanmine[idx]=i; + } + s.push_back(i); + } + for(int i=0;i