题目链接: 连号区间数
区间 [L,R] 里的所有元素(即此排列的第 L 个到第 R 个元素)递增排序后能得到一个长度为 R−L+1 的“连续”数列,则称这个区间连号区间。第 L 个到第 R 个元素 序列里最大值 - 最小值 +1= 第 L 个到第 R 个元素 的个数,最大值 - 最小值= L - R
样例:
输入样例1:
4
3 2 4 1
输出样例1:
7
(3,2)递增排序后(2,3)就是一个 连续数列,就称为 区间连号区间,(2,4,1)递增排序后(1,2,4)就不是一个连续数列,不能称为 区间连号区间
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int n;
int a[10005],b[10005];
int main(int argc, char** argv) {
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
int cnt=0;
for(int i=0;i<n;i++){//左端点
int Max=0;
int Min=11000;
for(int j=i;j<n;j++){ //右端点
Max=max(Max,a[j]);
Min=min(Min,a[j]);
if(j-i==Max-Min) cn· t++;
}
}
cout<<cnt<<endl;
return 0;
}