Python Spiral Matris Geçişi

Python'da 2 boyutlu bir matrisin öğelerini sarmal sırayla dolaşın ve listeleyin.

Editör'de deneyin

Genel Bakış

Spiral matris geçişi klasik bir çok boyutlu dizi problemidir. Dış sınırların saat yönünde geçilmesini ve sınırların giderek küçültülmesini gerektirir.

Ziyaret edilmeyen matris parçalarının sınırlarını izlemek için dört işaretçiyi koruyoruz: "üst", "alt", "sol" ve "sağ".

Sırasıyla soldan sağa, yukarıdan aşağıya, sağdan sola ve aşağıdan yukarıya giderek tüm hücreleri sistematik bir şekilde kaplıyoruz.

Kod ve Yürütme Çıkışı

Endeks manipülasyonunu gösteren saat yönünde spiral geçiş.

def spiral_order(matrix):
    if not matrix:
        return []
        
    result = []
    top, bottom = 0, len(matrix) - 1
    left, right = 0, len(matrix[0]) - 1
    
    while top <= bottom and left <= right:
        # Traverse Right
        for col in range(left, right + 1):
            result.append(matrix[top][col])
        top += 1
        
        # Traverse Down
        for row in range(top, bottom + 1):
            result.append(matrix[row][right])
        right -= 1
        
        if top <= bottom:
            # Traverse Left
            for col in range(right, left - 1, -1):
                result.append(matrix[bottom][col])
            bottom -= 1
            
        if left <= right:
            # Traverse Up
            for row in range(bottom, top - 1, -1):
                result.append(matrix[row][left])
            left += 1
            
    return result

grid = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
print("Matrix Spiral Order:")
print(spiral_order(grid))
Terminal Çıkışı
Matrix Spiral Order:
[1, 2, 3, 6, 9, 8, 7, 4, 5]

Adım Adım Uygulama

  • 2D grafik oluşturma ve spiral yol izleme
  • Veri motorlarındaki ızgara düzeni gezinme modelleri
  • Gelişmiş algoritma değerlendirme testleri

Sıkça Sorulan Sorular

Spiral geçişin zaman karmaşıklığı nedir?

Zaman karmaşıklığı O(m * n)'dir; burada m satırlar ve n sütunlardır, çünkü ızgaradaki her hücreyi tam olarak bir kez ziyaret ederiz.

İlgili Konular