#include<vector>
class Solution {
/*
* curwater->现有存水,tolwater->总计存水
* 1.查找第一个大于0的点start作为起点
* 2.判断start紧接下来的点是否小于该点
* 2.1若是,则计算curwater增加,并标记为true
* 2.1.1接着判断,小于则增加现有水,大于则结束查找,tolwater增加
* 2.2若不是,则该点作为新的start计算
*/
public:
int stored(vector<int>& height,int start,int end)
{
}
int trap(vector<int>& height) {
int tolwater=0;
int start=0;
while(height[start]==0) start++;//查找起点
for(;start<height.size();)
{
if(height[start+1]>=height[start])
{
start++;
continue;
}
else
{
int end=start+1;
while(height[end]<=height[end-1])end++;
//结束时height[end]>height[end-1]
while(height[end-1]<height[end])end++;
end--;//所要求的的end
//结束时height[end-1]>=height[end]
//接下来计算从start->end这段
tolwater+=stored(height,start,end);
start=end;//end作为新的起点
}
}
}
};