Как уменьшить время выполнения этого следующего кода? - PullRequest
0 голосов
/ 13 февраля 2020

(Эта программа должна принимать N входов из двух чисел в одной строке, где первое число - это мгновенное время бегуна в секундах и мгновенное расстояние. Из этих значений будет выведена самая быстрая скорость между двумя последовательными точками.)

Мне нужно уменьшить время выполнения этой программы. У кого-нибудь есть предложения?

 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;

 public class Main {
   public static void main(String[] args) throws NumberFormatException, IOException {

  BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

     int x = Integer.parseInt(input.readLine());
     double n1;
     double n2;
     double placeholder = 0;
     double maxspeed = 0;
     int[] time = new int[x];
     int[] distance = new int[x];

     for(int i = 0; i<x; i++) {

       String userinput= input.readLine();

       String[] parts = userinput.split(" ");
       String part1 = parts[0];
       time[i] = Integer.parseInt(part1);
       String part2 = parts[1];
       distance[i] = Integer.parseInt(part2);
       }

     for (int j = 0; j< distance.length; j++) {
       for(int i = 1; i< distance.length; i++) {

         n1 = (distance[(distance.length-1)- j] - distance[(distance.length-1) - i]);
         n2 = (time[(time.length-1) - j] - time[(time.length-1) - i]) ;

         if ((n2 != 0) && (n1/2 != n1)) {
           placeholder = (n1 / n2);
           if(placeholder < 0) {
             placeholder = placeholder*-1;
           }

           if(placeholder > maxspeed) {
             maxspeed = placeholder;
           }

         }
       }
     }
     System.out.println(maxspeed);
   }
 }
...