``` int trap(int* height, int heightSize){ if(heightSize<=2) return 0; int left=0,right=heightSize-1; int leftMax=height[0],rightMax=height[heightSize-1]; int ans=0; while(left<=right){ //元素不重合,没有遍历玩 if(leftMax Loading... ``` int trap(int* height, int heightSize){ if(heightSize<=2) return 0; int left=0,right=heightSize-1; int leftMax=height[0],rightMax=height[heightSize-1]; int ans=0; while(left<=right){ //元素不重合,没有遍历玩 if(leftMax<rightMax){ //左小于右,从左走 if(height[left]<leftMax){ //当前高度小于两者最小,可装两者之差 ans+=leftMax-height[left]; }else{ //当前高度大于左高,将左高设为当前高度 leftMax=height[left]; } //左数组元素自增 left++; } else{ //右小于左,从右走 if(height[right]<rightMax){ //当前高度小于右,可装两者之差 ans+=rightMax-height[right]; }else{ //当前高度大于右高,将右高设为当前高度 rightMax=height[right]; } //右数组元素自增 right--; } } return ans; } ``` Last modification:December 9, 2022 © Allow specification reprint Like 如果觉得我的文章对你有用,请随意赞赏