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;
}

浙公网安备 33010602011771号