Sobes.tech
Middle — Senior

Jak zaimplementować algorytm zliczania i przesuwania zer w tablicy w Pythonie?

sobes.tech AI

Odpowiedź od AI

Aby policzyć liczbę zer i przesunąć wszystkie zera na koniec tablicy w Pythonie, można użyć następującego algorytmu:

  1. Przejdź przez tablicę i skopiuj wszystkie niezerowe elementy na początek.
  2. Wypełnij pozostałe pozycje zerami.

Przykład implementacji:

from typing import List

def move_zeros(nums: List[int]) -> None:
    """Przesuwa wszystkie zera na koniec tablicy, zachowując kolejność elementów niezerowych."""
    insert_pos = 0
    for num in nums:
        if num != 0:
            nums[insert_pos] = num
            insert_pos += 1
    # Wypełnij pozostałe miejsca zerami
    for i in range(insert_pos, len(nums)):
        nums[i] = 0

# Przykład użycia
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr)  # Wyjście: [1, 3, 12, 0, 0]

Ten algorytm działa w czasie O(n) i wymaga O(1) dodatkowej pamięci.