题目:

 
1210. 连号区间数 - AcWing题库
思路:枚举
枚举一般是先暴力再优化。
注意:对于区间的枚举,一般是定一移一。固定任何一端移动另外一端均可以。但是此题为便于在枚举移动端的过程中确定最大最小,选择定左移右。
代码:
#include<iostream>
#include<cstdio>
using namespace std;
const int N=10010;
int a[N];
int main()
{
    int n,res=0;
    cin>>n;
    int i,j;
    for(i=1;i<=n;i++)scanf("%d",&a[i]);
    
    //固定区间左端点
    for(i=1;i<=n;i++)
    {
        int max=0;int min=10001;
        
        //移动的右端点
        for(j=i;j<=n;j++)
        {
            if(max<a[j])max=a[j];
            if(min>a[j])min=a[j];
            
            //因为排列是不重复的,若连续递增则有区间端点差=最大-最小
            if(max-min==j-i)res++;
        }
    }
    cout<<res;
}
















![[每周一更]-(第71期):DevOps 是什么?](https://img-blog.csdnimg.cn/74bce214f2ea42b6a497b866ec19cd79.png#pic_center)

