Angenommen, ich habe die folgende (2D) Matrix:
[[1, 2, 3, 4 ],
[5, 6, 7, 8 ],
[9, 10, 11, 12],
[13, 14, 15, 16]]
Drehen Sie die Matrix gegen den UhrzeigersinnR
(nicht in 90-Grad-Schritten, sondern jeweils nur um eine Zahl).
1 2 3 4 2 3 4 8 3 4 8 12
5 6 7 8 --> 1 7 11 12 --> 2 11 10 16
9 10 11 12 5 6 10 16 1 7 6 15
13 14 15 16 9 13 14 15 5 9 13 14
Abgeschlossenes Beispiel:
Eingang:
2
[[1, 2, 3, 4 ],
[5, 6, 7, 8 ],
[9, 10, 11, 12],
[13, 14, 15, 16]]
Ausgabe:
[[3, 4, 8, 12],
[2, 11, 10, 16],
[1, 7, 6, 15],
[5, 9, 13, 14]]
(Seltsame Leerzeichen sollen die Zahlen in schönen Spalten ausrichten)
Der äußere "Ring" der Matrix dreht sich 2 gegen den Uhrzeigersinn und der innere rechte dreht sich 2 ebenfalls. In dieser Matrix gibt es nur zwei Ringe.
Ein Beispiel mit 1 "Ring":
2
[[1, 2],
[3, 4],
[5, 6]]
Sollte ausgeben:
[[4, 6],
[2, 5],
[1, 3]]
Ihre Herausforderung besteht darin, eine Matrix und eine Ganzzahl aufzunehmen R
und die übersetzte Version nach R
Rotationen auszugeben .
Die Drehung einer 4x5-Matrix wird durch die folgende Abbildung dargestellt:
Einschränkungen:
2 ≤ M, N ≤ 100
, wobei M und N die Dimensionen der Matrix sind. Es ist garantiert, dass das Minimum von M und N gerade ist.1 ≤ R ≤ 80
, wobei r die Anzahl der Umdrehungen ist.- Die Matrix enthält immer nur positive ganze Zahlen.
- Werte sind nicht immer unterschiedlich.
- Die Eingabe sollte immer als 2D-Array erfolgen (wenn Sie keine Laufzeiteingabe als 2D-Array verwenden können, müssen Sie nur einen anderen Weg finden, um Eingaben zu erhalten).
Ein weiterer Testfall mit nicht eindeutigen Werten:
1
[[1, 1],
[2, 2],
[3, 3]]
Ausgänge:
[[1, 2],
[1, 3],
[2, 3]]
Dies ist Code-Golf , so dass die kürzeste Antwort gewinnt!
[[3, 4, 8, 12], [2, 11, 10, 16], [1, 7, 6, 16], [5, 9, 13, 14]]
die 16 ist plötzlich dupliziert, denke ich sollte es sein [[3, 4, 8, 12], [2, 11, 10, 16], [1, 7, 6, 15], [5, 9, 13, 14]]
:?