思路分析:
- 直接暴力枚举区间左右端点
- 小技巧,维护区间的最大值最小值用来判断区间满足条件
最大值-最小值+1==区间长度,即为连号区间,不需要排序
so case;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while(input.hasNext()) {
int N = input.nextInt();
int[] arr = new int[N];
for(int i=0; i<N; i++) {
arr[i] = input.nextInt();
}
int ans = 0;
for(int i=0; i<N; i++) {
int max = arr[i];
int min = arr[i];
for(int j=i; j<N; j++) {
if(arr[j]>max) max=arr[j];
if(arr[j]<min) min=arr[j];
if(max-min+1==(j-i+1)) {
ans++;
}
}
}
System.out.println(ans);
}
input.close();
}
}