Menu
CoddyTech

Spiral Matrix

Du erhältst eine Matrix aus Ganzzahlen mit m Zeilen und n Spalten, die als Liste von Zeilen angegeben ist. Gib alle ihre Werte in Spiralreihenfolge zurück.

Beginne in der oberen linken Ecke und gehe nach rechts entlang der obersten Zeile, dann nach unten entlang der rechten Spalte, nach links entlang der untersten Zeile und nach oben entlang der linken Spalte. Fahre im Uhrzeigersinn spiralförmig nach innen fort, bis jeder Wert genau einmal gelesen wurde.

Funktion

spiralOrder(matrix: integer-2d-array) → integer-array
matrixinteger-2d-array
das Raster aus Ganzzahlen als Liste gleich langer Zeilen
Gibt zurückinteger-array
jeden Wert der Matrix in spiralförmiger Reihenfolge im Uhrzeigersinn, beginnend an der oberen linken Ecke

Einschränkungen

  • 1 ≤ m, n ≤ 80, wobei m = matrix.length und n = matrix[i].length
  • Jede Zeile hat dieselbe Länge n.
  • -100 ≤ matrix[i][j] ≤ 100

Beispiele

Eingabe
matrix = [[1, 2, 3], [10, 11, 4], [9, 12, 5], [8, 7, 6]]
Ausgabe
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
Erklärung
Die Werte zählen entlang der Spirale hoch. Der äußere Ring zeigt oben 1, 2, 3, rechts nach unten 4, 5, 6, unten zurück 7, 8 und links nach oben 9, 10. Die innere Schicht ist eine einzelne Spalte, die einmal von oben nach unten gelesen wird: 11, 12.

lock icon+15 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Kannst du die Werte stattdessen gegen den Uhrzeigersinn zurückgeben, beginnend in der oberen linken Ecke und zuerst die linke Spalte nach unten durchgehend?

Code zurücksetzen
def spiralOrder(matrix):
    # Schreibe hier den Code
Testfälle

Fall 1

Fall 2

Fall 3

Eingabe

matrix = [[1, 2, 3], [10, 11, 4], [9, 12, 5], [8, 7, 6]]

Erwartet

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]