Sobes.tech
Middle — Senior

Kako implementirati algoritam za brojanje i pomeranje nula u nizu u Pythonu?

sobes.tech АИ

Одговор од АИ

Za brojanje broja nula i pomeranje svih nula na kraj niza u Python-u, možete koristiti sledeći algoritam:

  1. Prođite kroz niz i kopirajte sve nenulte elemente na početak.
  2. Popunite preostale pozicije nulama.

Primer implementacije:

from typing import List

def move_zeros(nums: List[int]) -> None:
    """Pomera sve nule na kraj niza, zadržavajući redosled nenultih elemenata."""
    insert_pos = 0
    for num in nums:
        if num != 0:
            nums[insert_pos] = num
            insert_pos += 1
    # Popunjava preostale pozicije nulama
    for i in range(insert_pos, len(nums)):
        nums[i] = 0

# Primer korišćenja
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr)  # Izlaz: [1, 3, 12, 0, 0]

Ovaj algoritam radi u vremenu O(n) i zahteva O(1) dodatne memorije.