链接
因为整个排列没有重复的数字,所以这个区间的最大值-最小值=区间的长度-1时,这个区间排序后将是连续的
当S=aUb时,maxS=max(maxa,maxb),这样求出每个区间的最值
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for(int i=0;i<n;i++)arr[i]=sc.nextInt();
f(arr);
}
public static void f(int[] arr) {
int max,min,result=0;
for(int i=0;i<arr.length-1;i++) {
max=min=arr[i];
for(int j=i+1;j<arr.length;j++)
if((max=Math.max(arr[j],max))-(min=Math.min(arr[j],min))==j-i)result++;
}
System.out.println(result+arr.length);
}
}