Middle — Senior
Python'da bir dizideki sıfırları sayma ve kaydırma algoritması nasıl uygulanır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Python'da sıfırların sayısını saymak ve tüm sıfırları dizinin sonuna taşımak için aşağıdaki algoritma kullanılabilir:
- Diziyi dolaşın ve tüm sıfır olmayan öğeleri başa kopyalayın.
- Kalan pozisyonları sıfırlarla doldurun.
Uygulama örneği:
from typing import List
def move_zeros(nums: List[int]) -> None:
"""Tüm sıfırları dizinin sonuna kaydırır, sıfır olmayan öğelerin sırasını koruyarak."""
insert_pos = 0
for num in nums:
if num != 0:
nums[insert_pos] = num
insert_pos += 1
# Kalan yerleri sıfırlarla doldurun
for i in range(insert_pos, len(nums)):
nums[i] = 0
# Kullanım örneği
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr) # Çıktı: [1, 3, 12, 0, 0]
Bu algoritma O(n) zaman karmaşıklığında çalışır ve ek hafıza kullanımı O(1)'dir.