Simulation dans les algorithmes et structures de données
Présentation de la simulation
La simulation est une technique fondamentale en informatique, souvent la première rencontrée par les étudiants en algorithmique. Sa difficulté peut varier considérablement, allant de problèmes simples comme « A+B » ou « Arbres devant l'école » à des défis complexes tels que « Porc Killer » ou « Batialle spatiale su ...
Publié le 11 juillet à 22h12
Les dictionnaires en Python : Structures de données clé-valeur
Aperçu des dictionnaires
Les dictionnaires en Python sont des conteneurs mutables capables de stocker des éléments de tout type. Ils organisent les données en paires clé-valeur, où chaque clé doit être unique. Dans les versions antérieures à Python 3.7, les dictionnaires sont non ordonnés ; à partir de Python 3.7, ils préservent l'ordre d'in ...
Publié le 25 juin à 17h34
Vérifier si une liste chaînée est un palindrome
Problème
Étant donné une liste chaînée simplement chaînée, déterminer si elle constitue un palindrome.
Suivi : Peut-on résoudre ce problème en O(n) temps et O(1) espace ?
Analyse
L'objectif est de vérifier si une liste chaînée est symétrique (palindrome).
Solution 1 : Approche avec tableau auxiliaire
Une première idée consiste à parcourir la li ...
Publié le 22 juin à 22h47
Optimisation des coupons magiques avec des tas binaires
Coupons magiques (25 points)
Sur Mars, une boutique magique propose des coupons spéciaux. Chaque coupon possède une valeur entière K : en l'appliquant à un produit, vous recevez K fois la valeur de celui-ci. La boutique offre aussi certains articles gratuits, mais si vous utilisez un coupon positif sur un cadeau (valeur négative), vous devez pa ...
Publié le 22 juin à 18h24
Notes de résolution de problèmes LeetCode (débutant)
Manipulations courantes
Chaînes de caractères
# Conversion ASCII
ord('A') # 65
chr(65) # 'A'
# Nettoyage
s = " hello\t\n"
s.strip() # "hello"
s.lstrip() # "hello\t\n"
s.rstrip() # " hello"
# Tests et transformations
"abc".isalpha() # True
"123".isnu ...
Publié le 21 juin à 00h34
Structures de données fondamentales : sac, file d'attente et pile
Structures de données de collection
De nombreux types de données fondamentaux reposent sur la gestion d'une collection d'objets. La valeur du type est un ensemble d'objets, et les opérations consistent à ajouter, supprimer ou accéder à ces objets. Nous examinerons trois structures de données de ce type : le Sac (Bag), la File d'attente (Queue) ...
Publié le 16 juin à 16h24
Parcours d'Arbres Binaires en C++ : Méthodes Itératives et Récursives
Parcours Pré-Ordre d'un Arbre Binaire
Méthode Récursive
La mise en œuvre récursive dépend de trois éléments fondamentaux :
Définir les paramètres et la valeur de retour de la fonction récursive.
Établir la condition d'arrêt de base.
Définir la logique d'appel récursif pour un nœud unique.
/**
* Définition pour un nœud d'arbre binaire.
* ...
Publié le 1 juin à 02h08