import java.util.*;
import java.io.*;
public class cses6 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
String m = "";
ArrayList<Integer> even = new ArrayList<Integer>();
ArrayList<Integer> odd = new ArrayList<Integer>();
ArrayList<String> stringjoin = new ArrayList<String>();
if (n == 1) {
System.out.println(n);
}
if (1 < n && n< 4) {
System.out.println("NO SOLUTION");
}
even.set(0, 4);
even.set(1, 2);
odd.add(0, 1);
for (int i = 1; i < n+1 && i > 4; i++) {
if (i % 2 == 0) {
even.add(i);
} else {
odd.add(i);
}
}
odd.addAll(even);
for (int i = 1; i < odd.size(); i++) {
m = Integer.toString(odd.get(i));
stringjoin.set(i,m);
}
System.out.println(stringjoin.toString().replace(", ", " ").replace("[", "").replace("]",""));
}
}
Mi problema es: De entrada
La única línea de entrada contiene un entero n.
Salida
Impresión de una hermosa permutación de los enteros de 1, 2,...,n. Si existen varias soluciones, usted puede imprimir cualquiera de ellos. Si no hay soluciones, print "NO hay SOLUCIÓN".
Sin embargo, puedo obtener el índice fuera de los límites de error. Que parte de mi código está mal y cómo puedo solucionar el error? Error tiene lugar en la línea 19