int trap(vector<int>& height) {
int leftmax=0,rightmax=0,res=0;
int lf=0,rh=height.size()-1;
while(lf<rh){
if(height[lf]<height[rh]){
leftmax=max(leftmax,height[lf]);
res+=leftmax-height[lf++];
}
else{
rightmax=max(rightmax,height[rh]);
res+=rightmax-height[rh--];
}
}
return res;
}
双指针方法,主要还是理解题意。
也可以用dp。
本文介绍了一种使用双指针技术解决求解二维数组中雨水存储量问题的高效算法。通过比较左右两侧高度,动态调整左右最大值,从而计算出能够存储的雨水总量。该方法避免了重复计算,提高了算法效率。
297

被折叠的 条评论
为什么被折叠?



