思路:很容易想到二重循环来进行 复杂度最大1e8 还是可以接受的
这里面最重要的是 数字各不相同
那麽我们判断是否是一个连续区间就可以通过 最大数字-最小数字 是否等于 区间端点相减 来判断是否成立
#include<iostream>
using namespace std;
const int N = 10010;
int a[N];
int n;
int main()
{
cin>>n;
int res = 0;
for(int i=1;i<=n;++i)cin>>a[i];
for(int i=1;i<=n;++i)
{
int minv=1e6,maxv = -1;
for(int j=i;j<=n;++j)
{
minv = min(minv,a[j]);
maxv = max(maxv,a[j]);
if(maxv-minv==j-i)res++;
}
}
cout<<res<<endl;
return 0;
}