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 :
- Parcourez le tableau et copiez tous les éléments non nuls au début.
- 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.