- 这题的难点在于提示,提示所用到的知识点是并查集,然而,想破脑袋也不知道怎么套并查集
- 对于我来说,还有个难点,我以为n方要1s完成最大规模n为2500,所以以为这题只能一次n循环
- 然后看到有人说此题N*N=50000*50000=2.5*10^9而 1s的范围是几亿次(n*10^9)
- 所以自己有想法就要去尝试,要自信
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n=in.nextInt();
int []array=new int[n];
for(int i=0;i<n;i++){
array[i]=in.nextInt();
}
int count=0;
for(int i=0;i<n;i++){
int max=0,min=n+1;
for(int j=i;j<n;j++){
if(array[j]>max)
max=array[j];
if(array[j]<min)
min=array[j];
if(max-min==j-i){
count++;
}
}
}
System.out.println(count);
}
}