
1.单个元素算一个连续区间
2.题意为 单独截取数组中的一段元素
例如 a数组假设为 3 1 2 5 4 6 7
假设取 a[3]-a[5]
则取出 5 4 6
重新排序后为 4 5 6
连续了 则ans++;
假设 取a[i]-a[j]这一段元素
设该段元素的最大值为max,最小值为min
如果该段元素重新排序后 是连续的则有
(j-i)=max-min;
证明

暴力枚举
符合条件则ans++;
代码
#include<iostream>
 #include<cstring>
 #include<cstdio>
 #include<algorithm>
 using namespace std;
 const int N=1e5+10;
 int a[N],b[N];
 int n;
 int ans=0;
int main(){
     cin>>n;
     for(int i=1;i<=n;i++){
         cin>>a[i];
     }
     
     for(int i=1;i<=n;i++){
         
         int minn=1e8,maxx=0;
         for(int j=i;j<=n;j++){
             minn=min(minn,a[j]);
             maxx=max(maxx,a[j]);
             if((maxx-minn)==(j-i))
             {
             ans++;
             }
         }
         
     }
     cout <<ans;
     
     return 0;
 }