蓝桥杯 连号区间数

思维题:

 一个区间是否连续,就看这个区间中(最大值 - 最小值 + 1)是否等于区间长度......

#include
#include
#include
#include
using namespace std;
const int maxn = 5050;
int a[maxn];
int n;

int main()
{
    cin >> n;
    for(int i = 1; i <= n; i++)
    {
        scanf("%d", &a[i]);
    }
    int ans =  0;
    for(int i = 1; i <= n; i++)
    {
        int minn = a[i], maxx = a[i];
        for(int j = i; j <= n; j++)
        {
            minn = min(a[j], minn);
            maxx = max(a[j], maxx);
            if(maxx - minn == j - i)
                ans++;
        }
    }
    cout << ans << endl;
    return 0;
}

 

你可能感兴趣的:(思维)