Witam, mam pytanie odnośnie zadania “Niekolejne” dla języka programowania Java.
Problem polega na tym, że nie mogę zmieścić się w przedziale czasowym wysyłając rozwiązanie dla języka Java. Dodam, że program prawidłowo rozwiązuje problem, ponieważ wcześniej rozwiązałem ten problem przy użyciu C++ i zwróciło AC. Próbowałem używać różnych sztuczek przyśpieszających I/O, typu szybsze wczytywanie danych, szybsze wyświetlanie danych, zapisywanie liczb w łańcuchu a potem jednorazowy odczyt jego, wszystkie próby zawiodły.
Mój kod (bez uwzględniania wyżej wymienionych sztuczek) wygląda następująco:
import java.util.Scanner;
class Niekolejne {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
if (n == 1 || n == 2)
System.out.print("NIE");
else {
for (int i = n - 1; i >= 0; i -= 2)
System.out.print(i + " ");
for (int i = n; i >= 0; i -= 2)
System.out.print(i + " ");
}
}
}
Moje pytanie brzmi, jak mogę poprawić działanie tego kodu pod względem optymalizacji czasowej? Co mogę zrobić, aby go choć odrobinę jeszcze przyśpieszyć?