Wenn Sie ein 2D-Array von Ganzzahlen haben, sortieren Sie die Zeilen und Spalten in Blöcken. Dies bedeutet, dass Sie nur eine bestimmte Zeile oder Spalte sortieren müssen, aber die zum Sortieren erforderlichen Transformationen auf jede andere Zeile oder Spalte im 2D-Array anwenden müssen.
Regeln
- Die Eingabe besteht aus einem 2D-Array von Ganzzahlen und einer 1-indizierten Ganzzahl. Diese Ganzzahl repräsentiert die zu sortierende Zeile, wenn die Zahl positiv ist, oder die zu sortierende Spalte, wenn die Zahl negativ ist (oder umgekehrt). Beispiel: Bei einem gegebenen
4x3Array (Zeilen x Spalten) können Sie die zweite Spalte mit einem-2Argument oder die dritte Zeile mit einem3Argument sortieren . Dieses zweite Argument wird niemals Null sein und sein absoluter Wert wird niemals größer sein als die entsprechende Dimension des Arrays. - Die Ausgabe erfolgt auch in Form eines 2D-Arrays mit ganzen Zahlen, wobei die erforderlichen Transformationen zum Sortieren der angegebenen Zeile oder Spalte angewendet werden. Alternativ können Sie das Array auch einfach in STDOUT schreiben.
- Das Ausgabearray enthält die angegebene Zeile oder Spalte in aufsteigender Reihenfolge. Beachten Sie nur, dass beim Vertauschen von zwei Zahlen in einer Reihe die gesamten Spalten, in denen die Zahlen liegen, vertauscht werden. Und wenn Sie zwei Zahlen in einer Spalte vertauschen müssen, werden die gesamten Zeilen, in denen die Zahlen liegen, vertauscht.
- In dem Fall, dass dieselbe Nummer mehrmals in der zu sortierenden Zeile / Spalte vorkommt, gibt es mehrere mögliche Lösungen, je nachdem, wie Sie die Werte vertauschen. Tun Sie dies entsprechend für die restlichen auszutauschenden Zeilen / Spalten.
Beispiele
Positive indices for rows and negative indices for columns
[5 8 7 6 [1 3 2 4
1 3 2 4 order by -3 (3rd column) --> 9 6 3 0
9 6 3 0] 5 8 7 6]
[5 8 7 6 [9 6 3 0
1 3 2 4 order by -4 (4th column) --> 1 3 2 4
9 6 3 0] 5 8 7 6]
[5 8 7 6 [5 7 8 6
1 3 2 4 order by 2 (2nd row) --> 1 2 3 4
9 6 3 0] 9 3 6 0]
[5 8 7 6 [6 7 8 5
1 3 2 4 order by 3 (3rd row) --> 4 2 3 1
9 6 3 0] 0 3 6 9]
[1 2 [1 2 [3 2
3 2] order by -2 (2nd column) --> 3 2] or 1 2] (both are valid)
[7 5 9 7 [5 7 7 9 [5 7 7 9
1 3 2 4 order by 1 (1st row) --> 3 1 4 2 or 3 4 1 2
9 6 3 0] 6 9 0 3] 6 0 9 3]
Das ist Code-Golf , also kann der kürzeste Code für jede Sprache gewinnen!