海洋之心


私信TA

用户名:wanggongsheng

访问量:132614

签 名:

等  级
排  名 18
经  验 21668
参赛次数 3
文章发表 163
年  龄 26
在职情况 学生
学  校
专  业 计算机技术

  自我简介:

读研ing,平时不登录dotcpp

解题思路:

 就是找到区间的最大值,最小值,然后再判断是否满足最大值减去最小值+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 人评分

  评论区

  • «
  • »