Ниже моя реализация для maxdiff проблемы на хакерранке. Он прошел все тестовые случаи, кроме 1, где тайм-аут подачи. Помогите мне оптимизировать его.
import java.io.*;
import java.util.*;
public class Solution {
private static final Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
int n = Integer.parseInt(scanner.nextLine());
if(n==0 || n==1)
System.out.println(0);;
String s=scanner.nextLine();
String ar[] = s.split("\\s+");
int[] a=new int[n];
for(int i=0;i<n;i++)
{
a[i]=Integer.parseInt(ar[i]);
}
int max, min;
long sum=0;
for(int i=0;i<n;i++)
{
max=a[i];
min=a[i];
for(int j=i+1;j<n;j++)
{
if(a[j]>max)
max=a[j];
if(a[j]<min)
min=a[j];
sum+=max-min;
}
}
System.out.println(sum);
}
}
Сбой тестового примера слишком велик, чтобы его можно было прикрепить.