Sobes.tech
Middle — Senior

Come implementare un algoritmo di conteggio e spostamento degli zeri in un array in Python?

sobes.tech AI

Risposta dell'AI

Per contare il numero di zeri e spostare tutti gli zeri alla fine dell'array in Python, si può usare il seguente algoritmo:

  1. Scorri l'array e copia tutti gli elementi non nulli all'inizio.
  2. Riempi le posizioni rimanenti con zeri.

Esempio di implementazione:

from typing import List

def move_zeros(nums: List[int]) -> None:
    """Sposta tutti gli zeri alla fine dell'array, mantenendo l'ordine degli elementi non nulli."""
    insert_pos = 0
    for num in nums:
        if num != 0:
            nums[insert_pos] = num
            insert_pos += 1
    # Riempi con zeri
    for i in range(insert_pos, len(nums)):
        nums[i] = 0

# Esempio di utilizzo
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr)  # Output: [1, 3, 12, 0, 0]

Questo algoritmo funziona in O(n) in tempo e in O(1) in memoria aggiuntiva.