Sobes.tech
Middle — Senior

Cum se implementează un algoritm de numărare și deplasare a zerourilor într-un array în Python?

sobes.tech AI

Răspuns de la AI

Pentru a număra numărul de zerouri și a muta toate zerourile la sfârșitul array-ului în Python, puteți utiliza următorul algoritm:

  1. Parcurgeți array-ul și copiați toate elementele nenule la început.
  2. Completați pozițiile rămase cu zerouri.

Exemplu de implementare:

from typing import List

def move_zeros(nums: List[int]) -> None:
    """Mută toate zerourile la sfârșitul array-ului, păstrând ordinea elementelor nenule."""
    insert_pos = 0
    for num in nums:
        if num != 0:
            nums[insert_pos] = num
            insert_pos += 1
    # Completați cu zerouri
    for i in range(insert_pos, len(nums)):
        nums[i] = 0

# Exemplu de utilizare
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr)  # Ieșire: [1, 3, 12, 0, 0]

Acest algoritm funcționează în O(n) timp și necesită O(1) memorie suplimentară.