1210. 连号区间数

https://www.acwing.com/problem/content/1212/
简答模拟水题一道
要注意的是题目给的条件是1~N的排列,不会有重复数字,那么稍加思考即可有,若排列排序后递增,则有排列中的Max-Min+1=序列长度,如此充要条件则可判断此排列为递增区间

	#include<bits/stdc++.h>
	using namespace std;
	const int N = 10005;
	int a[N];
	int n,ans;
	int Max,Min;
	int main()
	{
		cin >> n;
		for (int i = 1; i <= n; i++)
			scanf("%d", &a[i]);
		for (int i = 1; i <= n; i++)
		{
			Max=Min=a[i];
			for (int j = i; j <= n; j++)
			{
				Max=max(Max,a[j]);
				Min=min(Min,a[j]);
				if(Max - Min == j-i)ans++;
			}
		}
		cout << ans << endl;
		return 0;
	}

 

posted @ 2022-10-03 22:11  风乐  阅读(29)  评论(0)    收藏  举报