接雨水
使用双指针的方法和leetcode-11 盛最多水的容器的使用是一样的
class Solution {
public:
int trap(vector<int>& height) {
//接雨水的题目:思路
//思路也就是求解一个数字(非0)
int len = height.size();
//了解了一点:我们可以让左边稳定小于右边的如果不小于那么就使用另一个
int left = 0;
int right = len - 1;
int sum = 0;
int minx = 0;//保存的是前后两个指针高度最小的那个,后面有保证是最小的高度的那个指针先动
while (left<right)
{
if (height[left]<height[right])//这里保证左边比右边的要小的
{
if (minx<height[left])
minx = height[left];
else
sum = sum + minx - height[left];
++left;
}
else
{
if (minx<height[right])
minx = height[right];
else
sum = sum + minx - height[right];
--right;
}
}
return sum;
}
};