Menu
CoddyTech

Spiral Matrix

m satır ve n sütundan oluşan, satırların listesi olarak verilen bir tamsayı matrisi alırsın. Tüm değerlerini spiral sırayla döndür.

Sol üst köşeden başla ve üst satır boyunca sağa ilerle, ardından sağ sütun boyunca aşağı, alt satır boyunca sola ve sol sütun boyunca yukarı git. Her değer tam olarak bir kez okunana kadar saat yönünde içe doğru dönmeye devam et.

Fonksiyon

spiralOrder(matrix: integer-2d-array) → integer-array
matrixinteger-2d-array
eşit uzunluktaki satırlardan oluşan bir liste olarak tamsayı ızgarası
Döndürürinteger-array
matrisin her bir değeri, sol üst köşeden başlayarak saat yönünde spiral sırayla

Kısıtlar

  • 1 ≤ m, n ≤ 80; burada m = matrix.length ve n = matrix[i].length
  • Her satırın uzunluğu n ile aynıdır.
  • -100 ≤ matrix[i][j] ≤ 100

Örnekler

Girdi
matrix = [[1, 2, 3], [10, 11, 4], [9, 12, 5], [8, 7, 6]]
Çıktı
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
Açıklama
Değerler spiral boyunca sayarak ilerler. Dış halkada üst tarafta 1, 2, 3, sağ tarafta aşağı doğru 4, 5, 6, alt tarafta geriye doğru 7, 8 ve sol tarafta yukarı doğru 9, 10 okunur. İç katman tek bir sütundur ve yukarıdan aşağıya bir kez okunur: 11, 12.

lock iconGönderirken +15 gizli test

challenge icon

Ek soru

Değerleri bunun yerine saat yönünün tersine, sol sütunda aşağı doğru ilerleyerek sol üst köşeden başlayıp döndürebilir misin?

Kodu sıfırla
def spiralOrder(matrix):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Durum 3

Girdi

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

Beklenen

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