Inspiriert von Entnommen aus einer Frage bei Stack Overflow .
Die Herausforderung
Bei einer gegebenen Ganzzahl n>1
werden alle Arrays ausgegeben, die durch Austauschen von genau zwei Einträgen im Array erhalten werden können [1, 2, ..., n]
.
Die Arrays können in beliebiger Reihenfolge hergestellt werden.
Sie können konsequent [0, 1, ..., n-1]
(0-basiert) anstelle von [1, 2, ..., n]
(1-basiert) verwenden.
Zusätzliche Regeln
Ein- und Ausgabe sind wie gewohnt flexibel .
Programme oder Funktionen sind in jeder Programmiersprache zulässig . Standardlücken sind verboten.
Kürzester Code in Bytes gewinnt.
Testfälle
Eingabe 2
gibt Ausgabe (angenommen 1-basiert)
2 1
Eingabe 3
gibt Ausgabe (beachten Sie, dass die drei Arrays in beliebiger Reihenfolge sein können)
1 3 2
2 1 3
3 2 1
Input 4
gibt Output
1 2 4 3
1 3 2 4
1 4 3 2
2 1 3 4
3 2 1 4
4 2 3 1
Input 7
gibt Output
1 2 3 4 5 7 6
1 2 3 4 6 5 7
1 2 3 4 7 6 5
1 2 3 5 4 6 7
1 2 3 6 5 4 7
1 2 3 7 5 6 4
1 2 4 3 5 6 7
1 2 5 4 3 6 7
1 2 6 4 5 3 7
1 2 7 4 5 6 3
1 3 2 4 5 6 7
1 4 3 2 5 6 7
1 5 3 4 2 6 7
1 6 3 4 5 2 7
1 7 3 4 5 6 2
2 1 3 4 5 6 7
3 2 1 4 5 6 7
4 2 3 1 5 6 7
5 2 3 4 1 6 7
6 2 3 4 5 1 7
7 2 3 4 5 6 1
[0 ... n-1]
vs [1 ... n]
! Ich ärgere mich immer ein wenig, wenn ich einen 1+
weil J-Null-Index anheften muss.