Sobes.tech
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:

  1. Diziyi dolaşın ve tüm sıfır olmayan öğeleri başa kopyalayın.
  2. 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.