你这个代码我看不懂。。。
因为我自己也没有写过,所以想了一下之后看了一下题解
目前有两种解法是我比较喜欢的
一种是从前往后从后往前都搜一遍,找左低右高的容器(就是我想到的)
另外一种是用从下往上一层层搜,然后减去石柱的面积
### (抄一下题解代码)
```
#include<algorithm>
using namespace std;
int a[10001],maxx=-1;//a是输入,maxx是最大高度
int main()
{
int n,ans=0,s=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
maxx=max(maxx,a[i]);
s+=a[i];
}
for(int i=1;i<=maxx;i++)
{
int head=1,tail=n;
while(a[head]<i)
head+=1;
while(a[tail]<i)
tail-=1;
ans+=tail-head+1;
}
cout<<ans-s;
return 0;
}
```
by Pomelo_VB @ 2023-10-29 10:13:21
@[Pomelo_VB](/user/1112054) 现在才看到,两周前打的,已在同学指导下AC,感谢
by wangborui123 @ 2023-11-10 20:26:00