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:
- Scorri l'array e copia tutti gli elementi non nulli all'inizio.
- 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.