Algorithmes de listes chaînées : suppression, conception et inversion

Les listes chaînées sont une structure de données fondamentale en informatique. Cet article examine trois techniques clés : la suppression d'éléments, la conception complète d'une liste et l'inversion d'une liste chaînée. Suppression d'éléments dans une liste chaînée Le but est de retirer tous les nœuds dont la valeur correspond à un paramèt ...

Publié le 30 juin à 17h00

Compter les nombres premiers avec le Crible d'Ératosthène

Description: Compter le nombre de nombres premiers inférieurs à un nombre non négatif n. Pour résoudre ce problème, nous utiliserons l'algorithme du Crible d'Ératosthène. Le principe est de marquer les nombres non-premiers en commençant par le premier nombre premier (2) et en élimniant tous ses multiples, puis en passsant au nombre premier suiv ...

Publié le 26 juin à 20h24

Solution du problème Leetcode 55 : Jeu du Saut

Le problème 55 de Leetcode, appelé Jeu du Saut, consiste à vérifier si on peut atteindre le dernier index d'un tableau en partant du premier, où chaque élément indique la distance maximale de saut autorisée. Plusieurs méthodes algorithmiques s'appliquent, incluant le backtracking, la programmation dynamique et l'approche greedy. Le backtracking ...

Publié le 24 juin à 20h40

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

Trouver le Nœud d'Entrée d'un Cycle dans une Liste Chaînée avec Table de Hachage et Pointeurs Rapide-Lent

Description du Problème Étant donné le nœud de tête d'une liste chaînée, déterminer le premier nœud qui introduit un cycle. Si aucun cycle n'existe, retourrner null. Méthode 1 : Table de Hachage Principe Parcourir la liste chaînée en enregistrant chaque nœud dans une table de hachage. Lorsqu'un nœud déjà présent est rencontré, il s'agit du poin ...

Publié le 19 juin à 23h37

Calcul de la médiane de deux tableaux triés

Étant donné deux tableaux triés arrA et arrB de tailles respectives lenA et lenB, l'objectif est de déterminer leur médiane avec une complexité temporelle de O(log(lenA + lenB)). On suppose que les tableaux ne sont pas simultanément vides. Exemple : Entrée : arrA = [1, 3], arrB = [2] Sortie : La médiane est 2.0 Approches algorithmiques 1. Fusio ...

Publié le 17 juin à 04h07

Rotation d'image 90 degrés dans une matrice carrée

Problème Soit une matrice carrée matrix de dimensions n × n représentant une image. Vous devez la faire pivoter de 90 degrés dans le sens horaire, sur place (c'est-à-dire sans utiliser une autre matrice). Approches L'idée fondamentale est que l'élément situé à la ligne i et colonne j se retrouve après rotation à la position j de l'avant-dernièr ...

Publié le 13 juin à 22h30

Résolution de problèmes LeetCode sur les arbres binaires : équilibre, chemins et somme des feuilles gauches

Nous abordons trois problèmes LeetCode classiques impliquant des arbres binaires, en utilisant des techniques de parcousr en C++. Ces problèmes couvrent la vérification d'équilibre, la génération de tous les chemins et le calcul de la somme des feuilles gauches. Problème 110 : Arbre binaire équilibré Pour déterminer si un arbre binaire est équi ...

Publié le 11 juin à 20h14

Chaînes isomorphes : solution et implémentations en C++

Problème : chaînes isomorphes Étant données deux chaînes s et t, déterminer si elles sont isomorphes. Deux chaînes sont dites isomorphes si on peut remplacer chaque caractère de s par un autre pour obtenir t. Toutes les occurrences d’un même caractère doivent être remplacées par le même caractère, tout en conservant l’ordre. Aucun caractère ne ...

Publié le 10 juin à 22h31

Multiplication de grands nombres sous forme de chaînes

Le problème consiste à multiplier deux nombres représentés par des chaînes de caractères et à retourner le résultat sous forme de chaîne. Les nombres peuvent être arbitrairement grands et sont non négatifs. Une première idée serait de convertir chaque chaîne en entier, d'effectuer la multiplication, puis de reconvertir le résultat en chaîne. Ce ...

Publié le 9 juin à 03h48