4
3 2 4 1
7
5
3 4 2 5 1
9
- 固定L,遍历R
- 在[L,R]区域中找到最大值Max,最小Min,若maxv - minv == j - i,则说明该区域[L,R]是递增且连续的
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int n;
const int N=11000;
int a[N],ans=0;
int main()
{
cin >> n;
for(int i = 1; i <= n; i++) cin >> a[i];//读入每组数据
for(int i = 1; i <= n; i++)
{
// 定义最大值和最小值
int max1 = -1;
int min1= 10101;
for(int j = i; j <=n ; j++)
{
max1 = max(a[j], max1);
min1 = min(a[j], min1);
// 判断是否是连号区间
if((max1 - min1) == (j - i))
ans++;
}
}
cout << ans <<"\n";
return 0;
}```