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:
- Prođite kroz niz i kopirajte sve nenulte elemente na početak.
- 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.