我的时间复杂度很低,但是空间爆掉了,服了,能不能给Java给点空间容错率啊洛谷!!
package com;
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n=scanner.nextInt();
int[] arr=new int[n];
int[][] dp=new int[n][n];
for (int i = 0; i < n; i++) {
arr[i]=scanner.nextInt();
}
for (int i = 0; i < n; i++) {
int min=arr[i];
int max=arr[i];
for (int j = i; j < n; j++) {
if(arr[j]<min) {
min=arr[j];
}else if(arr[j]>max){
max=arr[j];
}
dp[i][j]=max-min;
}
}
// for (int i = 0; i < dp.length; i++) {
// System.out.println(Arrays.toString(dp[i]));
// }
int count=0;
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
if (dp[i][j]==j-i) {
// System.out.println((i+1)+" "+(j+1));
count++;
}
}
}
System.out.println(count);
}
}