Sobes.tech
Middle — Senior

Comment implémenter un algorithme de comptage et de déplacement des zéros dans un tableau en Python?

sobes.tech IA

Réponse de l'IA

Pour compter le nombre de zéros et déplacer tous les zéros à la fin du tableau en Python, vous pouvez utiliser l'algorithme suivant :

  1. Parcourez le tableau et copiez tous les éléments non nuls au début.
  2. Remplissez les positions restantes avec des zéros.

Exemple d'implémentation :

from typing import List

def move_zeros(nums: List[int]) -> None:
    """Déplace tous les zéros à la fin du tableau, en conservant l'ordre des éléments non nuls."""
    insert_pos = 0
    for num in nums:
        if num != 0:
            nums[insert_pos] = num
            insert_pos += 1
    # Remplir avec des zéros
    for i in range(insert_pos, len(nums)):
        nums[i] = 0

# Exemple d'utilisation
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr)  # Affiche : [1, 3, 12, 0, 0]

Cet algorithme fonctionne en O(n) en temps et en O(1) en mémoire supplémentaire.