Python Spiral Matris Geçişi
Python'da 2 boyutlu bir matrisin öğelerini sarmal sırayla dolaşın ve listeleyin.
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ş.
spiral.py
Editör'de deneyindef 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.