Aller au contenu
  1. Tags/

#Dsa

100 articles avec ce tag.

Algorithmes & Structures de données 3Sum Trouve tous les triplets UNIQUES (i≠j≠k) dont la somme vaut zéro. Ex : [-1,0,1,2,-1,-4] → [[-1,-1,2],[-1,0,1]]. Le défi principal : éviter les doublons proprement. Moyen · 2 min Algorithmes & Structures de données Add Two Numbers Deux nombres sont stockés en listes chaînées INVERSÉES (chiffre des unités en tête). Additionne-les et renvoie la somme sous la même forme. Ex : (2→4→3) + (5→6→4) = 342 + 465 = 807 → (7→0→8). Moyen · 2 min Algorithmes & Structures de données Alien Dictionary Des mots sont donnés triés selon un alphabet extraterrestre inconnu. Déduis UN ordre valide des lettres de cet alphabet ("" si les mots sont contradictoires). Le hard de tri topologique par excellence. Difficile · 3 min Algorithmes & Structures de données Balanced Binary Tree Un arbre est « équilibré en hauteur » si, pour CHAQUE nœud, les hauteurs de ses deux sous-arbres diffèrent d'au plus 1. Vérifie cette propriété. Facile · 2 min Algorithmes & Structures de données Basic Calculator Évalue une expression arithmétique donnée en chaîne : entiers, +, -, parenthèses imbriquées et espaces (sans eval() bien sûr). Ex : "(1+(4+5+2)-3)+(6+8)" → 23. Difficile · 2 min Algorithmes & Structures de données Best Time to Buy and Sell Stock prices[i] est le prix d'une action le jour i. Tu dois acheter UN jour puis vendre UN jour plus tard. Renvoie le profit maximum possible (0 si aucun profit n'est possible). Facile · 2 min Algorithmes & Structures de données Binary Search Dans un tableau TRIÉ d'entiers, trouve l'indice de target, ou renvoie -1 s'il est absent. Contrainte implicite : le faire en O(log N), pas en balayant tout le tableau. Facile · 2 min Algorithmes & Structures de données Binary Tree Level Order Traversal Renvoie les valeurs d'un arbre binaire niveau par niveau, de haut en bas, chaque niveau dans sa propre liste. Ex : [3,9,20,null,null,15,7] → [[3],[9,20],[15,7]]. Moyen · 2 min Algorithmes & Structures de données Binary Tree Maximum Path Sum Trouve la somme maximale d'un CHEMIN dans un arbre binaire (suite de nœuds connectés, chaque nœud au plus une fois, pas besoin de passer par la racine, valeurs possiblement négatives). Difficile · 2 min Algorithmes & Structures de données Burst Balloons Des ballons portent des nombres. Éclater le ballon i rapporte nums[gauche] × nums[i] × nums[droite] (les voisins ACTUELS). Maximise le total. Ex : [3,1,5,8] → 167. Considéré comme l'un des DP les plus difficiles du catalogue. Difficile · 2 min Algorithmes & Structures de données Climbing Stairs Tu montes un escalier de N marches. À chaque pas tu montes 1 ou 2 marches. Combien de façons distinctes d'atteindre le sommet ? Ex : N=3 → 3 façons (1+1+1, 1+2, 2+1). Facile · 2 min Algorithmes & Structures de données Clone Graph Clone en profondeur un graphe non orienté connexe : chaque nœud a une valeur et une liste de voisins. Renvoie la copie du nœud donné. Moyen · 2 min Algorithmes & Structures de données Coin Change Avec des pièces de valeurs données (quantité illimitée), quel est le NOMBRE MINIMAL de pièces pour atteindre exactement un montant ? (-1 si impossible). Ex : coins=[1,2,5], amount=11 → 3 (5+5+1). Moyen · 2 min Algorithmes & Structures de données Combination Sum Avec des candidats distincts et une cible, trouve toutes les combinaisons UNIQUES dont la somme vaut la cible — chaque candidat est réutilisable à volonté. Ex : [2,3,6,7], target=7 → [[2,2,3],[7]]. Moyen · 2 min Algorithmes & Structures de données Construct Binary Tree from Preorder and Inorder Reconstruis l'arbre binaire unique à partir de ses parcours preorder et inorder (valeurs distinctes). Ex : preorder=[3,9,20,15,7], inorder=[9,3,15,20,7]. Moyen · 2 min Algorithmes & Structures de données Container With Most Water height[i] est la hauteur d'une paroi verticale en position i. Deux parois + l'axe des x forment un bac : trouve la paire qui contient le plus d'eau. Aire = min(h1, h2) × distance. Moyen · 2 min Algorithmes & Structures de données Contains Duplicate Renvoie true si au moins une valeur apparaît deux fois dans le tableau, false si tous les éléments sont distincts. Facile · 2 min Algorithmes & Structures de données Course Schedule N cours, avec des prérequis [a, b] signifiant « b avant a ». Peut-on suivre TOUS les cours ? (Impossible si les prérequis forment un cycle.) Moyen · 2 min Algorithmes & Structures de données Daily Temperatures Pour chaque jour, combien de jours faut-il attendre avant une température PLUS CHAUDE ? (0 si jamais). Ex : [73,74,75,71,69,72,76,73] → [1,1,4,2,1,1,0,0]. Moyen · 2 min Algorithmes & Structures de données Diameter of Binary Tree Le diamètre d'un arbre est la longueur (en ARÊTES) du plus long chemin entre deux nœuds quelconques — ce chemin ne passe pas forcément par la racine. Facile · 2 min Algorithmes & Structures de données Edit Distance Nombre MINIMAL d'opérations (insérer, supprimer, remplacer un caractère) pour transformer word1 en word2. Ex : "horse" → "ros" = 3. La distance de Levenshtein, au cœur des correcteurs orthographiques. Difficile · 2 min Algorithmes & Structures de données Find Median from Data Stream Conçois une structure qui reçoit des nombres en continu : addNum(num) insère, findMedian() renvoie la médiane de tous les nombres vus. Les deux opérations doivent rester rapides malgré le flux. Difficile · 2 min Algorithmes & Structures de données Find Minimum in Rotated Sorted Array Même tableau trié-tourné que le Search in Rotated Sorted Array, éléments uniques : trouve la valeur MINIMALE en O(log N). Ex : [4,5,6,7,0,1,2] → 0. Moyen · 2 min Algorithmes & Structures de données First Bad Version Les versions 1..N d'un produit se suivent ; à partir d'une certaine version, toutes sont « mauvaises ». Une API isBadVersion(v) te répond. Trouve la PREMIÈRE mauvaise version en minimisant les appels à l'API. Facile · 2 min Algorithmes & Structures de données First Missing Positive Trouve le plus petit entier POSITIF (≥ 1) absent d'un tableau non trié — en O(N) temps et O(1) espace supplémentaire. Ces contraintes interdisent le tri ET le HashSet. Difficile · 2 min Algorithmes & Structures de données Flood Fill Une image est une grille d'entiers (couleurs). À partir du pixel (sr, sc), applique le « pot de peinture » : remplace sa couleur et celle de tous ses voisins connectés (haut/bas/gauche/droite) de la même couleur d'origine par une nouvelle couleur. Facile · 2 min Algorithmes & Structures de données Group Anagrams Regroupe les mots d'un tableau par familles d'anagrammes. Ex : ["eat","tea","tan","ate","nat","bat"] → [["eat","tea","ate"],["tan","nat"],["bat"]]. Moyen · 2 min Algorithmes & Structures de données House Robber Un voleur longe une rue de maisons contenant nums[i] euros, mais ne peut pas cambrioler deux maisons ADJACENTES. Quel butin maximal ? Moyen · 2 min Algorithmes & Structures de données House Robber II Même problème, mais les maisons forment un CERCLE : la première et la dernière sont adjacentes. Butin maximal ? Moyen · 2 min Algorithmes & Structures de données Implement Queue using Stacks Implémente une file FIFO (push, pop, peek, empty) en n'utilisant QUE des piles LIFO. Facile · 2 min Algorithmes & Structures de données Implement Trie (Prefix Tree) Implémente un Trie (arbre de préfixes) : insert(word), search(word) (mot complet présent ?) et startsWith(prefix) (un mot commence-t-il ainsi ?). Moyen · 2 min Algorithmes & Structures de données Invert Binary Tree Inverse un arbre binaire en miroir : pour chaque nœud, son sous-arbre gauche devient son sous-arbre droit et vice-versa. Renvoie la racine. (Le fameux problème qui a recalé le créateur de Homebrew chez Google.) Facile · 2 min Algorithmes & Structures de données Koko Eating Bananas Koko a des tas de bananes (piles[i]) et h heures. Chaque heure, elle mange k bananes d'UN seul tas (si le tas en a moins, l'heure est quand même consommée). Trouve la vitesse k MINIMALE pour tout finir en h heures. Moyen · 2 min Algorithmes & Structures de données Kth Largest Element in a Stream Conçois une classe qui reçoit des nombres en continu (un flux) et sait renvoyer à tout moment le K-ième plus GRAND élément vu jusqu'ici. add(val) insère et renvoie ce K-ième. Facile · 2 min Algorithmes & Structures de données Kth Largest Element in an Array Trouve le K-ième plus GRAND élément d'un tableau non trié (pas le K-ième distinct). Ex : [3,2,1,5,6,4], k=2 → 5. Moyen · 2 min Algorithmes & Structures de données Kth Smallest Element in a BST Renvoie le K-ième plus petit élément d'un arbre binaire de recherche (K commence à 1). Moyen · 2 min Algorithmes & Structures de données Largest Rectangle in Histogram Un histogramme de barres de largeur 1 : trouve l'aire du plus grand RECTANGLE inscrit. Ex : [2,1,5,6,2,3] → 10 (hauteur 5 sur les barres 5 et 6). Difficile · 2 min Algorithmes & Structures de données Last Stone Weight Des pierres ont des poids. À chaque tour, on fracasse les DEUX plus lourdes l'une contre l'autre : si elles sont égales, les deux disparaissent ; sinon il reste une pierre de poids (y - x). Renvoie le poids de la dernière pierre (ou 0). Facile · 2 min Algorithmes & Structures de données Linked List Cycle Détermine si une liste chaînée contient un cycle (un nœud dont le next pointe vers un nœud précédent de la liste, créant une boucle infinie). Facile · 2 min Algorithmes & Structures de données Longest Common Prefix Trouve le plus long préfixe commun à toutes les chaînes d'un tableau. Ex : ["flower","flow","flight"] → "fl". S'il n'y en a pas, renvoie "". Facile · 2 min Algorithmes & Structures de données Longest Common Subsequence Longueur de la plus longue sous-suite commune à deux chaînes (mêmes caractères, même ordre, sauts autorisés). Ex : "abcde" et "ace" → 3. La base de git diff et des outils de comparaison. Moyen · 2 min Algorithmes & Structures de données Longest Increasing Subsequence Trouve la longueur de la plus longue sous-suite STRICTEMENT croissante (pas forcément contiguë : on peut sauter des éléments en gardant l'ordre). Ex : [10,9,2,5,3,7,101,18] → 4 ([2,3,7,101]). Moyen · 2 min Algorithmes & Structures de données Longest Palindromic Substring Trouve la plus longue sous-chaîne palindrome d'une chaîne. Ex : "babad" → "bab" (ou "aba"). Moyen · 2 min Algorithmes & Structures de données Longest Repeating Character Replacement Dans une chaîne de lettres majuscules, tu peux remplacer au plus k caractères. Quelle est la plus longue sous-chaîne composée d'une SEULE lettre que tu peux obtenir ? Ex : s="AABABBA", k=1 → 4. Moyen · 2 min Algorithmes & Structures de données Longest Substring Without Repeating Characters Trouve la longueur de la plus longue SOUS-CHAÎNE (contiguë) sans caractère répété. Ex : "abcabcbb" → 3 ("abc"). Moyen · 2 min Algorithmes & Structures de données Longest Valid Parentheses Dans une chaîne de '(' et ')', trouve la longueur de la plus longue SOUS-CHAÎNE contiguë de parenthèses bien formées. Ex : ")()())" → 4 ("()()"). Difficile · 2 min Algorithmes & Structures de données Lowest Common Ancestor of a BST Dans un arbre binaire de RECHERCHE (BST), trouve le plus petit ancêtre commun (LCA) de deux nœuds p et q : le nœud le plus profond qui a p et q dans sa descendance (un nœud est son propre ancêtre). Facile · 2 min Algorithmes & Structures de données LRU Cache Conçois un cache à capacité fixe avec get(key) et put(key, value) en O(1). Quand le cache est plein, évince l'élément utilisé le moins récemment (Least Recently Used). LE problème de design le plus posé en entretien. Moyen · 3 min Algorithmes & Structures de données Majority Element Trouve l'élément qui apparaît PLUS de N/2 fois dans le tableau (il existe toujours). Ex : [2,2,1,1,1,2,2] → 2. Facile · 2 min Algorithmes & Structures de données Maximum Depth of Binary Tree Renvoie la profondeur maximale d'un arbre binaire : le nombre de nœuds sur le plus long chemin de la racine jusqu'à une feuille. Un arbre vide a une profondeur de 0. Facile · 2 min Algorithmes & Structures de données Maximum Subarray (Kadane) Trouve le sous-tableau CONTIGU dont la somme est maximale, et renvoie cette somme. Ex : [-2,1,-3,4,-1,2,1,-5,4] → 6 (le sous-tableau [4,-1,2,1]). Moyen · 2 min Algorithmes & Structures de données Median of Two Sorted Arrays Deux tableaux triés de tailles m et n : trouve la MÉDIANE de leur union en O(log(min(m,n))) — la complexité imposée interdit la fusion. Réputé le hard « mathématique » par excellence. Difficile · 3 min Algorithmes & Structures de données Meeting Rooms On te donne des réunions sous forme d'intervalles [début, fin]. Une seule personne peut-elle assister à TOUTES les réunions (aucun chevauchement) ? Facile · 2 min Algorithmes & Structures de données Merge Intervals Fusionne tous les intervalles qui se chevauchent. Ex : [[1,3],[2,6],[8,10],[15,18]] → [[1,6],[8,10],[15,18]]. Moyen · 2 min Algorithmes & Structures de données Merge K Sorted Lists Fusionne K listes chaînées triées en une seule liste triée. La généralisation directe de Merge Two Sorted Lists (Merge Two Sorted Lists). Difficile · 2 min Algorithmes & Structures de données Merge Sorted Array nums1 (taille m+n, avec n zéros de remplissage à la fin) et nums2 (taille n) sont triés. Fusionne nums2 DANS nums1, en place, pour que nums1 soit trié. Facile · 2 min Algorithmes & Structures de données Merge Two Sorted Lists On te donne les têtes de deux listes chaînées TRIÉES. Fusionne-les en une seule liste triée en réutilisant les nœuds existants, et renvoie la tête de la nouvelle liste. Facile · 2 min Algorithmes & Structures de données Middle of the Linked List Renvoie le nœud du MILIEU d'une liste chaînée. Si la liste a un nombre pair de nœuds, renvoie le second des deux nœuds du milieu. Facile · 2 min Algorithmes & Structures de données Min Stack Conçois une pile qui supporte push, pop, top, ET getMin (le minimum de la pile) — chaque opération en O(1) constant. Facile · 2 min Algorithmes & Structures de données Minimum Window Substring Trouve la plus PETITE sous-chaîne de s qui contient tous les caractères de t (avec leurs multiplicités). Ex : s="ADOBECODEBANC", t="ABC" → "BANC". Le boss final des fenêtres glissantes. Difficile · 2 min Algorithmes & Structures de données Missing Number Un tableau contient N nombres distincts pris dans l'intervalle [0, N]. Un seul nombre de l'intervalle manque : trouve-le. Ex : [3,0,1] → 2. Facile · 2 min Algorithmes & Structures de données Move Zeroes Déplace tous les zéros d'un tableau à la fin, en conservant l'ordre relatif des éléments non nuls, EN PLACE et sans copie du tableau. Ex : [0,1,0,3,12] → [1,3,12,0,0]. Facile · 2 min Algorithmes & Structures de données N-Queens Place N reines sur un échiquier N×N sans qu'aucune n'en menace une autre (ligne, colonne, diagonales). Renvoie TOUTES les configurations valides. Le grand classique historique du backtracking. Difficile · 2 min Algorithmes & Structures de données Number of Islands Une grille contient '1' (terre) et '0' (eau). Compte les îles : groupes de terres connectées horizontalement ou verticalement. LE problème de graphe le plus posé chez Amazon. Moyen · 2 min Algorithmes & Structures de données Pacific Atlantic Water Flow Une grille d'altitudes est bordée par le Pacifique (haut/gauche) et l'Atlantique (bas/droite). L'eau coule vers une case d'altitude inférieure ou égale. Trouve toutes les cases d'où l'eau peut atteindre LES DEUX océans. Moyen · 3 min Algorithmes & Structures de données Palindrome Number Un entier est-il un palindrome (se lit pareil dans les deux sens) SANS le convertir en chaîne ? Ex : 121 → vrai, -121 → faux (le signe casse la symétrie). Facile · 2 min Algorithmes & Structures de données Permutation in String La chaîne s2 contient-elle une PERMUTATION de s1 comme sous-chaîne contiguë ? Ex : s1="ab", s2="eidbaooo" → vrai ("ba"). Moyen · 2 min Algorithmes & Structures de données Permutations Génère toutes les permutations d'un tableau d'éléments distincts. Ex : [1,2,3] → 6 permutations. Moyen · 2 min Algorithmes & Structures de données Plus One Un grand entier est représenté par un tableau de chiffres (chiffre de poids fort en premier). Ajoute 1 et renvoie le tableau résultat. Ex : [1,2,9] → [1,3,0], [9,9] → [1,0,0]. Facile · 2 min Algorithmes & Structures de données Product of Array Except Self Renvoie un tableau où result[i] est le produit de TOUS les éléments SAUF nums[i] — sans utiliser la division, en O(N). Moyen · 2 min Algorithmes & Structures de données Ransom Note Peux-tu écrire le mot ransomNote en découpant des lettres du texte magazine ? Chaque lettre du magazine ne peut servir qu'une fois. Renvoie true/false. Facile · 2 min Algorithmes & Structures de données Regular Expression Matching Implémente un matching de regex complet entre s et un pattern p supportant '.' (n'importe quel caractère) et '*' (zéro ou plusieurs occurrences du caractère PRÉCÉDENT). Le match doit couvrir toute la chaîne. Difficile · 3 min Algorithmes & Structures de données Remove Duplicates from Sorted Array Un tableau est trié : supprime les doublons EN PLACE pour que chaque valeur n'apparaisse qu'une fois, et renvoie k, le nombre d'éléments uniques (les k premières cases doivent contenir le résultat). Facile · 2 min Algorithmes & Structures de données Remove Nth Node From End of List Supprime le N-ième nœud EN PARTANT DE LA FIN d'une liste chaînée, en une seule passe, et renvoie la tête. Moyen · 2 min Algorithmes & Structures de données Reorder List Réordonne une liste L0→L1→...→Ln en L0→Ln→L1→Ln-1→L2→... en place, sans modifier les valeurs (uniquement les pointeurs). Moyen · 2 min Algorithmes & Structures de données Reverse Linked List Inverse une liste chaînée simple et renvoie la nouvelle tête. Ex : 1→2→3→4 devient 4→3→2→1. Le problème de liste chaînée le plus posé en entretien, tous niveaux confondus. Facile · 2 min Algorithmes & Structures de données Reverse Nodes in k-Group Inverse une liste chaînée par blocs de k nœuds : 1→2→3→4→5 avec k=2 devient 2→1→4→3→5. Un groupe incomplet en fin de liste reste tel quel. Le test ultime de manipulation de pointeurs. Difficile · 2 min Algorithmes & Structures de données Roman to Integer Convertis un nombre romain (I, V, X, L, C, D, M) en entier. Subtilité : IV = 4 et IX = 9 — un symbole plus petit AVANT un plus grand se soustrait. Facile · 2 min Algorithmes & Structures de données Rotting Oranges Grille : 0 = vide, 1 = orange fraîche, 2 = orange pourrie. Chaque minute, toute fraîche adjacente à une pourrie pourrit. Combien de minutes pour tout pourrir ? (-1 si impossible). Moyen · 2 min Algorithmes & Structures de données Same Tree Deux arbres binaires sont-ils identiques : même structure ET mêmes valeurs à chaque position ? Facile · 2 min Algorithmes & Structures de données Search in Rotated Sorted Array Un tableau trié a été « tourné » à un pivot inconnu (ex : [4,5,6,7,0,1,2]). Trouve l'indice de target en O(log N). Moyen · 2 min Algorithmes & Structures de données Serialize and Deserialize Binary Tree Conçois serialize(root) qui transforme un arbre binaire en chaîne, et deserialize(data) qui reconstruit l'arbre EXACT depuis cette chaîne. Le format est libre : seul l'aller-retour compte. Difficile · 2 min Algorithmes & Structures de données Single Number Chaque élément du tableau apparaît exactement deux fois, sauf UN qui apparaît une seule fois. Trouve-le en temps linéaire et SANS mémoire supplémentaire. Facile · 2 min Algorithmes & Structures de données Sliding Window Maximum Une fenêtre de taille k glisse sur un tableau : renvoie le MAXIMUM de chaque position de la fenêtre. Ex : nums=[1,3,-1,-3,5,3,6,7], k=3 → [3,3,5,5,6,7]. Contrainte : O(N). Difficile · 2 min Algorithmes & Structures de données Sqrt(x) Calcule la racine carrée ENTIÈRE de x (partie entière, arrondi vers le bas), sans utiliser Math.sqrt(). Ex : sqrt(8) → 2. Facile · 2 min Algorithmes & Structures de données Squares of a Sorted Array Un tableau trié peut contenir des négatifs. Renvoie le tableau des CARRÉS, trié croissant, en O(N). Ex : [-4,-1,0,3,10] → [0,1,9,16,100]. Facile · 2 min Algorithmes & Structures de données Subsets Génère TOUS les sous-ensembles possibles d'un tableau d'éléments distincts (le « power set »). Ex : [1,2,3] → [[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]. Moyen · 2 min Algorithmes & Structures de données Subtree of Another Tree L'arbre subRoot apparaît-il quelque part comme sous-arbre COMPLET de l'arbre root (même structure, mêmes valeurs, jusqu'aux feuilles) ? Facile · 2 min Algorithmes & Structures de données Symmetric Tree Un arbre binaire est-il symétrique, c'est-à-dire son propre miroir autour de son axe central ? Facile · 2 min Algorithmes & Structures de données Top K Frequent Elements Renvoie les K éléments les plus fréquents d'un tableau. Ex : nums=[1,1,1,2,2,3], k=2 → [1,2]. Contrainte suggérée : mieux que O(N log N). Moyen · 2 min Algorithmes & Structures de données Trapping Rain Water height[i] est la hauteur d'un mur. Après la pluie, combien d'unités d'eau restent piégées entre les murs ? Ex : [0,1,0,2,1,0,1,3,2,1,2,1] → 6. Un très grand classique difficile. Difficile · 2 min Algorithmes & Structures de données Two Sum On te donne un tableau d'entiers nums et une cible target. Trouve les indices de DEUX nombres dont la somme vaut exactement target. Il y a toujours exactement une solution, et tu ne peux pas utiliser deux fois le même élément. Facile · 2 min Algorithmes & Structures de données Valid Anagram Deux chaînes s et t sont des anagrammes si t est un réarrangement exact des lettres de s (mêmes lettres, mêmes quantités). Ex : "listen" et "silent" → vrai. Facile · 2 min Algorithmes & Structures de données Valid Palindrome Une phrase est un palindrome si, après avoir retiré tout ce qui n'est pas alphanumérique et ignoré la casse, elle se lit pareil dans les deux sens. Ex : "A man, a plan, a canal: Panama" → vrai. Facile · 2 min Algorithmes & Structures de données Valid Parentheses Une chaîne ne contient que les caractères ( ) { } [ ]. Dis si elle est « valide » : chaque parenthèse ouvrante doit être fermée par le même type, dans le bon ordre. Ex : "()[]{}" est valide, "(]" ne l'est pas. Facile · 2 min Algorithmes & Structures de données Validate Binary Search Tree Vérifie qu'un arbre binaire est un BST valide : pour CHAQUE nœud, tout son sous-arbre gauche est strictement inférieur, tout son sous-arbre droit strictement supérieur. Moyen · 2 min Algorithmes & Structures de données Word Break Une chaîne s peut-elle être découpée en une suite de mots appartenant tous à un dictionnaire (mots réutilisables) ? Ex : s="leetcode", dict=["leet","code"] → vrai. Moyen · 2 min Algorithmes & Structures de données Word Ladder Transforme beginWord en endWord en changeant UNE lettre à la fois, chaque mot intermédiaire devant appartenir au dictionnaire. Renvoie la longueur de la plus courte chaîne de transformation (0 si impossible). Difficile · 2 min Algorithmes & Structures de données Word Search Un mot existe-t-il dans une grille de lettres, en enchaînant des cases ADJACENTES (haut/bas/gauche/droite), sans réutiliser une case ? Moyen · 2 min Algorithmes & Structures de données Word Search II Trouve TOUS les mots d'une liste présents dans une grille de lettres (règles du Word Search). Lancer Word Search une fois par mot serait beaucoup trop lent : il faut chercher tous les mots EN MÊME TEMPS. Difficile · 3 min