原题
这题对区间的考虑方法值得学习,更新最大值和最小值的方法也应该记住
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int a[N];
int n;
int ans;
int main()
{
cin>>n;
for(int i = 0; i < n; i ++ ) cin>>a[i];
for(int i = 0; i < n; i ++ ){
int maxn = -1e9, minn = 1e9;
for(int j = i; j < n; j ++ ){
maxn = max(maxn, a[j]);
minn = min(minn, a[j]);
if(maxn - minn == j - i) ans ++ ;//当最大值减去最小值等于区间长度,就证明这是一个连续区间(因为区间内的数都不重复)
}
}
cout<<ans<<endl;
return 0;
}