Idea: Enumerate all intervals and perform judgment
code:
# include<iostream>
# include<cstdio>
# include<cstring>
# include<algorithm>
using namespace std;
const int N = 10010,INF = 100000000;
int a[N];
//1~n某个排列说明里面的数不重复
int main()
{
int n;
cin >> n;
for(int i = 0;i < n;i++)
{
cin >> a[i];
}
int res = 0;
for(int i = 0;i < n;i++)
{
int minv = INF,maxv = -INF;
for(int j = i;j < n;j++)
{
minv = min(minv,a[j]);//找到[i,j]区间的最小值
maxv = max(maxv,a[j]);//找到[i,j]区间的最大值
if(maxv - minv == j - i)//最大值减最小值如果等于区间长度,则说明为连号区间
{
res++;
}
}
}
cout << res << endl;
return 0;
}