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
Algorithmes sur Listes Chaînées et Tableaux : Addition et Recherche de Paires
Addition de nombres représentés par des listes chaînées
Le problème consiste à additionner deux entiers non négatifs représentés par des listes chaînées non vides. Les chiffres sont stockés dans l'ordre inverse, chaque nœud contenant un seul chiffre. L'objectif est de calculer la somme et de la renvoyer sous la forme d'une nouvelle liste chaîné ...
Publié le 4 juin à 18h27
Optimisation par Programmation Dynamique pour des Problèmes Algorithmiques
Maison Voleur
Ce problème est analogue à une version non continue de la somme maximale d'une sous-séquence. En séparant le dernier élément, les parties précédentes forment un sous-problème. La solution utilise la programmation dynamique pour calculer le maximum sans voler deux maisons adjacentes.
class Solution {
public:
int rob(vector&l ...
Publié le 2 juin à 21h19