解题思路:
就是找到区间的最大值,最小值,然后再判断是否满足最大值减去最小值+1 等于区间的长度。
但是数据较大。可能是测试数据太水,然后没有超时。
注意事项:
参考代码:
#include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std; const int maxn = 5001; int a[maxn]; int main(void) { int n,cnt=0; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<n;i++) { int minn=a[i],maxn=a[i]; for(int j=i;j<n;j++) { if(a[j]<minn) minn=a[j]; if(a[j]>maxn) maxn=a[j]; if(maxn-minn+1==j-i+1) cnt++; } } printf("%d",cnt); return 0; }
0.0分
2 人评分