#include <iostream>
#include<algorithm>
using namespace std;
#define N 100
int A[N];
int trap(int A[],int n){
int l=A[0];
int r=A[n-1];
int i=1;
int j=n-2;
int sum=0;
while(i<=j){
if(l>r){//左边比右边高
sum+=max(0,r-A[j]);
r=max(r,A[j--]);//宽度减少只能高度增加
}
else{
sum+=max(0,l-A[i]);
l=max(l,A[i++]);
}
}
return sum;
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++)
{ cin>>A[i];}
int c=trap(A,n);
cout<<c<<endl;
}
刷题-trapping-rain-water
最新推荐文章于 2020-09-11 17:40:03 发布