Code charpie
À ce jour (2016-08-22), il y a 289 problèmes sur LintCode Online Judge. Le nombre de problèmes a augmenté récemment. Voici la classification des 289 problèmes. Pour plus de problèmes et de solutions, vous pouvez consulter mon référentiel LeetCode-Solutions. Je continuerai à mettre à jour pour un résumé complet et de meilleures solutions. Restez à l'écoute des mises à jour.
Algorithmes
- Manipulation des bits
- Tableau
- Chaîne
- Liste liée
- Mathématiques
- Arbre
- Empiler
- File d'attente
- Tas
- Tables de hachage
- Structure des données
- Trier
- Récursivité
- Recherche binaire
- Recherche en largeur d'abord
- Recherche en profondeur d'abord
- Retour en arrière
- Arbres de recherche binaire
- Programmation dynamique
- Cupide
- Conception OO
- Conception du système
Manipulation des bits
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 1 | Problème A + B | C++ | O(1) | O(1) | Moyen | | |
| 82 | Numéro unique | C++ | Sur) | O(1) | Facile | LeetCode | |
| 83 | Numéro unique II | C++ | Sur) | O(1) | Facile | LeetCode | |
| 84 | Numéro unique III | C++ | Sur) | O(1) | Moyen | CTCI | |
| 142 | O(1) Vérifier la puissance de 2 | C++ | O(1) | O(1) | Facile | | |
| 179 | Mettre à jour les bits | C++ | O(1) | O(1) | Moyen | CTCI | |
| 181 | Retourner les bits | C++ | O(1) | O(1) | Facile | CTCI | |
| 196 | Trouver le numéro manquant | C++ | Sur) | O(1) | Moyen | | |
| 365 | Comptez 1 en binaire | C++ | O(1) | O(1) | Facile | CTCI | |
Tableau
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 6 | Fusionner un tableau trié | C++ | O(m+n) | O(1) | Facile | LeetCode | Deux pointeurs |
| 8 | Faire pivoter la chaîne | C++ | Sur) | O(1) | Facile | LeetCode | |
| 9 | Buzz pétillant | C++ | Sur) | O(1) | Facile | | |
| 30 | Insérer un intervalle | C++ | Sur) | O(1) | Facile | LeetCode, EPI | |
| 31 | Tableau de partition | C++ | Sur) | O(1) | Moyen | | Deux pointeurs |
| 32 | Sous-chaîne de fenêtre minimale | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 38 | Rechercher une matrice 2D II | C++ | O(m+n) | O(1) | Moyen | PEV | |
| 39 | Récupérer un tableau trié avec rotation | C++ | Sur) | O(1) | Facile | | |
| 46 | Nombre majoritaire | C++ | Sur) | O(1) | Facile | LeetCode | |
| 47 | Majorité numéro II | C++ | Sur) | O(1) | Moyen | PEV | |
| 48 | Majorité numéro III | C++ | Sur) | D'accord) | Moyen | PEV | |
| 49 | Trier les lettres par cas | C++ | Sur) | O(1) | Moyen | | Deux pointeurs |
| 50 | Le produit du tableau s'exclut | C++ | Sur) | O(1) | Facile | | |
| 51 | Permutation précédente | C++ | Sur) | O(1) | Moyen | | |
| 52 | Permutation suivante | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 57 | 3 Somme | C++ | O(n^2) | O(1) | Moyen | LeetCode | Deux pointeurs, trier |
| 58 | 4 Somme | C++ | O(n^3) | O(1) | Moyen | LeetCode | Hacher |
| 59 | 3 Somme la plus proche | C++ | O(n^2) | O(1) | Moyen | LeetCode | Deux pointeurs, trier |
| 64 | Fusionner un tableau trié II | C++ | O(m+n) | O(1) | Facile | LeetCode | Deux pointeurs |
| 100 | Supprimer les doublons du tableau trié | C++ | Sur) | O(1) | Facile | LeetCode | Deux pointeurs |
| 101 | Supprimer les doublons du tableau trié II | C++ | Sur) | O(1) | Facile | LeetCode | Deux pointeurs |
| 133 | Mots les plus longs | C++ | Sur) | Sur) | Facile | | |
| 144 | Entrelacement de nombres positifs et négatifs | C++ | Sur) | O(1) | Moyen | | Deux pointeurs |
| 161 | Faire pivoter l'image | C++ | O(n^2) | O(1) | Moyen | LeetCode | |
| 162 | Définir les zéros de la matrice | C++ | O(m*n) | O(1) | Moyen | LeetCode | |
| 172 | Supprimer l'élément | C++ | Sur) | O(1) | Facile | LeetCode | Deux pointeurs |
| 185 | Traversée en zigzag de la matrice | C++ | O(m*n) | O(1) | Facile | | |
| 189 | Premier positif manquant | C++ | Sur) | O(1) | Facile | LeetCode, EPI | Hacher |
| 190 | Permutation suivante II | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 200 | Sous-chaîne palindromique la plus longue | C++ | Sur) | Sur) | Moyen | LeetCode | Manacher's Algorithm |
| 363 | Piéger l’eau de pluie | C++ | Sur) | O(1) | Moyen | LeetCode | Deux pointeurs, délicats |
| 373 | Tableau de partition par impair et pair | C++ | Sur) | O(1) | Facile | | Deux pointeurs |
| 374 | Matrice spirale | C++ | O(m*n) | O(1) | Moyen | LeetCode | |
| 381 | Matrice spirale II | C++ | O(n^2) | O(1) | Moyen | LeetCode | |
| 382 | Nombre de triangles | C++ | O(n^2) | O(1) | Moyen | | Deux pointeurs |
| 383 | Récipient avec le plus d'eau | C++ | Sur) | O(1) | Moyen | LeetCode, EPI | Deux pointeurs |
| 388 | Séquence de permutation | C++ | O(n^2) | Sur) | Moyen | LeetCode | |
| 389 | Sudoku valide | C++ | O(9^2) | O(9) | Facile | LeetCode | |
| 404 | Somme de sous-tableau II | C++ | O (nlogn) | Sur) | Dur | | Deux pointeurs, recherche binaire |
| 405 | Somme de la sous-matrice | C++ | O(m * n^2) | O(m) | Dur | | Hacher |
| 406 | Somme de sous-tableau de taille minimale | C++ | Sur) | O(1) | Moyen | LeetCode | Deux pointeurs, recherche binaire |
| 539 | Déplacer les zéros | C++ | Sur) | O(1) | Facile | LeetCode | Deux pointeurs |
Chaîne
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 13 | strStr | C++ | O(n+k) | D'accord) | Facile | LeetCode | KMP Algorithm |
| 53 | Inverser les mots dans une chaîne | C++ | Sur) | O(1) | Facile | LeetCode, EPI | |
| 54 | Chaîne en entier (atoi) | C++ | Sur) | O(1) | Dur | LeetCode | |
| 55 | Comparer les chaînes | C++ | Sur) | O(c) | Facile | | |
| 78 | Préfixe commun le plus long | C++ | Sur) | O(1) | Moyen | | |
| 157 | Personnages uniques | C++ | Sur) | O(1) | Facile | CTCI | |
| 158 | Deux cordes sont des anagrammes | C++ | Sur) | O(1) | Facile | | |
| 171 | Anagrammes | C++ | O(n * klogk) | O(m) | Facile | LeetCode, EPI | |
| 212 | Remplacement de l'espace | C++ | Sur) | O(1) | Facile | | |
| 407 | Plus un | C++ | Sur) | O(1) | Facile | LeetCode | |
| 408 | Ajouter un binaire | C++ | Sur) | O(1) | Facile | LeetCode | |
| 415 | Palindrome valide | C++ | Sur) | O(1) | Facile | LeetCode | |
| 417 | Numéro valide | C++ | Sur) | O(1) | Dur | LeetCode | Automates |
| 420 | Comptez et dites | C++ | O(n * 2^n) | O(2^n) | Facile | LeetCode | |
| 422 | Longueur du dernier mot | C++ | Sur) | O(1) | Facile | LeetCode | |
| 524 | Coussinet gauche | C++ | O(p+n) | O(1) | Facile | LeetCode | |
Liste liée
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 16 | Fusionner deux listes triées | C++ | Sur) | O(1) | Facile | LeetCode, EPI | |
| 35 | Liste chaînée inversée | C++ | Sur) | O(1) | Facile | LeetCode, EPI | |
| 36 | Liste chaînée inversée II | C++ | Sur) | O(1) | Moyen | LeetCode, EPI | |
| 96 | Liste des partitions | C++ | Sur) | O(1) | Facile | LeetCode | |
| 98 | Trier la liste | C++ | O (nlogn) | O (connexion) | Moyen | LeetCode, EPI | |
| 99 | Réorganiser la liste | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 102 | Cycle de liste chaînée | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 103 | Liste chaînée Cycle II | C++ | Sur) | O(1) | Dur | LeetCode | |
| 104 | Fusionner k listes triées | C++ | O(n * logk) | O(1) | Moyen | LeetCode | Accumuler, diviser et conquérir |
| 105 | Copier la liste avec un pointeur aléatoire | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 106 | Convertir une liste triée en arbre de recherche binaire | C++ | Sur) | O (connexion) | Moyen | LeetCode, EPI | |
| 112 | Supprimer les doublons de la liste triée | C++ | Sur) | O(1) | Facile | LeetCode, EPI | |
| 113 | Supprimer les doublons de la liste triée II | C++ | Sur) | O(1) | Moyen | LeetCode, EPI | |
| 166 | Nième au dernier nœud de la liste | C++ | Sur) | O(1) | Facile | LeetCode | |
| 167 | Somme de deux listes | C++ | Sur) | O(1) | Facile | LeetCode | |
| 170 | Rotation de la liste | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 173 | Liste de tri par insertion | C++ | O(n^2) | O(1) | Facile | LeetCode | |
| 174 | Supprimer le nième nœud de la fin de la liste | C++ | Sur) | O(1) | Facile | LeetCode | |
| 223 | Liste chaînée Palindrome | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 372 | Supprimer le nœud au milieu d'une liste à lien unique | C++ | O(1) | O(1) | Facile | CTCI | |
| 380 | Intersection de deux listes liées | C++ | O(m+n) | O(1) | Facile | LeetCode | |
| 450 | Nœuds inversés dans le groupe k | C++ | Sur) | O(1) | Dur | LeetCode | |
| 451 | Échanger les nœuds par paires | C++ | Sur) | O(1) | Facile | LeetCode | |
| 452 | Supprimer les éléments de la liste chaînée | C++ | Sur) | O(1) | Naïf | LeetCode | |
| 511 | Échanger deux nœuds dans la liste liée | C++ | Sur) | O(1) | Moyen | | |
Arbre
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 7 | Sérialisation d'arbre binaire | C++ | Sur) | Oh) | Moyen | | |
| 85 | Insérer un nœud dans une arborescence de recherche binaire | C++ | Oh) | O(1) | Facile | | |
| 88 | Ancêtre commun le plus bas | C++ | Sur) | Oh) | Moyen | PEV | |
| 175 | Inverser l'arbre binaire | C++ | Sur) | Oh) | Facile | LeetCode | |
| 442 | Implémenter Trie | C++ | Sur) | O(1) | Moyen | LeetCode | Essayer |
Empiler
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 12 | Pile minimale | C++ | Sur) | O(1) | Moyen | LeetCode, EPI | |
| 40 | Implémenter la file d'attente par deux piles | C++ | O(1), amorti | Sur) | Moyen | PEV | |
| 66 | Traversée de précommande d'arbre binaire | C++ | Sur) | O(1) | Facile | LeetCode, EPI | Morris Traversal |
| 67 | Traversée de l'ordre de l'arbre binaire | C++ | Sur) | O(1) | Facile | LeetCode, EPI | Morris Traversal |
| 68 | Traversée post-commande de l'arbre binaire | C++ | Sur) | O(1) | Facile | LeetCode, EPI | Morris Traversal |
| 122 | Le plus grand rectangle de l'histogramme | C++ | Sur) | Sur) | Dur | LeetCode, EPI | Pile ascendante |
| 126 | Arbre maximum | C++ | Sur) | Sur) | Dur | | Pile décroissante |
| 367 | Création d'un arbre d'expression | C++ | Sur) | Sur) | Dur | | |
| 368 | Évaluation des expressions | C++ | Sur) | Sur) | Dur | | |
| 369 | Convertir une expression en notation polonaise | C++ | Sur) | Sur) | Dur | | |
| 370 | Convertir une expression en notation polonaise inversée | C++ | Sur) | Sur) | Dur | | |
| 421 | Simplifier le chemin | C++ | Sur) | Sur) | Moyen | LeetCode | |
| 423 | Parenthèses valides | C++ | Sur) | Sur) | Facile | LeetCode | |
| 424 | Évaluer la notation polonaise inversée | C++ | Sur) | Sur) | Moyen | LeetCode | |
| 473 | Ajouter et rechercher un mot | C++ | O(min(n,h)) | O(min(n,h) | Moyen | LeetCode | Essayer |
| 510 | Rectangle maximal | C++ | O(m*n) | Sur) | Dur | LeetCode | Pile ascendante |
| 528 | Aplatir l'itérateur de liste imbriquée | C++ | Sur) | Oh) | Moyen | LeetCode | |
File d'attente
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 362 | Maximum de fenêtre coulissante | C++ | Sur) | D'accord) | Dur | PEV | Deque, délicat |
Tas
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 4 | Le laid numéro II | C++ | Sur) | O(1) | Moyen | CTCI | BST, tas |
| 81 | Médiane du flux de données | C++ | O (nlogn) | Sur) | Dur | PEV | BST, tas |
| 130 | Heapifier | C++ | Sur) | O(1) | Moyen | | |
| 364 | Piéger l'eau de pluie II | C++ | O(m * n * (logm + logn)) | O(m*n) | Dur | | BFS, tas, délicat |
| 518 | Numéro super laid | C++ | O(n*k) | O(n+k) | Moyen | LeetCode | BST, tas |
Tables de hachage
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 56 | 2 Somme | C++ | Sur) | Sur) | Moyen | LeetCode | |
| 124 | Séquence consécutive la plus longue | C++ | Sur) | Sur) | Moyen | LeetCode, EPI | |
| 128 | Fonction de hachage | C++ | Sur) | O(1) | Facile | | |
| 129 | Répéter | C++ | Sur) | Sur) | Moyen | | |
| 138 | Somme du sous-tableau | C++ | Sur) | Sur) | Facile | | |
| 186 | Nombre maximum de points sur une ligne | C++ | O(n^2) | Sur) | Moyen | LeetCode | |
| 211 | Permutation de chaînes | C++ | Sur) | O(1) | Facile | | |
| 384 | Sous-chaîne la plus longue sans caractères répétitifs | C++ | Sur) | O(1) | Moyen | LeetCode, EPI | |
| 386 | Sous-chaîne la plus longue avec au plus K caractères distincts | C++ | Sur) | Sur) | Moyen | | |
| 432 | Trouver le composant connecté faible dans le graphique orienté | C++ | O (nlogn) | Sur) | Moyen | | Union trouver |
| 434 | Nombre d'îles II | C++ | D'accord) | D'accord) | Dur | | Union trouver |
| 488 | Numéro heureux | C++ | D'accord) | D'accord) | Facile | LeetCode | |
| 547 | Intersection de deux tableaux | C++ | O(m+n) | O(min(m,n)) | Facile | EPI, LeetCode | Deux pointeurs, recherche binaire |
| 548 | Intersection de deux tableaux II | C++ | O(m+n) | O(min(m,n)) | Facile | EPI, LeetCode | Deux pointeurs, recherche binaire |
Structure des données
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 134 | Cache LRU | C++ | O(1) | D'accord) | Dur | LeetCode, EPI | Liste, hachage |
Mathématiques
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 2 | Zéros à droite | C++ | O(1) | O(1) | Facile | LeetCode | |
| 3 | Nombre de chiffres | C++ | O(1) | O(1) | Moyen | CTCI | |
| 114 | Des chemins uniques | C++ | O(min(m,n)) | O(1) | Facile | LeetCode, CTCI | DP, Mathématiques |
| 163 | Arbres de recherche binaires uniques | C++ | Sur) | O(1) | Moyen | CTCI | DP, Mathématiques, Catalan Number |
| 180 | Représentation binaire | C++ | O(1) | O(1) | Dur | CTCI | |
| 197 | Indice de permutation | C++ | O(n^2) | O(1) | Facile | | |
| 198 | Indice de permutation II | C++ | O(n^2) | Sur) | Moyen | | |
| 394 | Pièces en ligne | C++ | O(1) | O(1) | Facile | | |
| 411 | Code gris | C++ | O(2^n) | O(1) | Moyen | LeetCode | |
| 413 | Entier inversé | C++ | O(1) | O(1) | Moyen | LeetCode | |
| 414 | Diviser deux entiers | C++ | O(1) | O(1) | Moyen | LeetCode | |
| 418 | Entier à Romain | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 419 | Romain en entier | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 428 | Puissance(x, n) | C++ | O(1) | O(1) | Moyen | LeetCode | |
| 445 | Similitude cosinus | PythonC++ | Sur) | O(1) | Facile | | |
| 517 | Numéro laid | C++ | O(1) | O(1) | Facile | CTCI, LeetCode | |
Trier
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 5 | Kième plus grand élément | C++ | O(n) ~ O(n^2) | O(1) | Moyen | PEV | Deux pointeurs, tri rapide |
| 80 | Médian | C++ | Sur) | O(1) | Facile | PEV | |
| 139 | Somme du sous-tableau la plus proche | C++ | O (nlogn) | Sur) | Moyen | | Trier |
| 143 | Trier les couleurs II | C++ | Sur) | O(1) | Moyen | | |
| 148 | Trier les couleurs | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 156 | Fusionner les intervalles | C++ | O (nlogn) | O(1) | Facile | LeetCode, EPI | |
| 184 | Le plus grand nombre | C++ | O (nlogn) | O(1) | Moyen | LeetCode | |
| 366 | Fibonacci | C++ | Sur) | O(1) | Facile | | |
| 379 | Réorganiser le tableau pour construire le nombre minimum | C++ | O (nlogn) | O(1) | Moyen | LeetCode | |
| 387 | La plus petite différence | C++ | O(max(m, n) * log(min(m, n))) | O(1) | Moyen | | Deux pointeurs, recherche binaire |
| 399 | Problème d'écrous et de boulons | C++ | O (nlogn) | O (connexion) | Moyen | | Tri rapide |
| 400 | Écart maximal | PythonC++ | Sur) | Sur) | Dur | LeetCode | Tri par seau |
| 463 | Trier les entiers | C++ | O(n^2) | O(1) | Facile | | Tri par insertion, tri par sélection, tri par bulles |
| 464 | Trier les entiers II | C++ | O (nlogn) | Sur) | Facile | | Tri par fusion, tri par tas, tri rapide |
| 507 | Wiggle Tri II | C++ | O(n) en moyenne | O(1) | Moyen | LeetCode | Tripartition |
| 508 | Tri par remuements | C++ | Sur) | O(1) | Moyen | LeetCode | |
Récursivité
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 22 | Aplatir la liste | C++ | Sur) | Oh) | Facile | | |
| 72 | Construire un arbre binaire à partir d'un parcours d'ordre et de post-ordre | C++ | Sur) | Sur) | Moyen | LeetCode, EPI | |
| 73 | Construire un arbre binaire à partir du parcours de précommande et de commande | C++ | Sur) | Sur) | Moyen | LeetCode, EPI | |
| 93 | Arbre binaire équilibré | C++ | Sur) | Oh) | Facile | LeetCode | |
| 94 | Somme maximale du chemin de l'arbre binaire | C++ | Sur) | Oh) | Moyen | LeetCode | |
| 95 | Valider l'arborescence de recherche binaire | C++ | Sur) | Oh) | Moyen | LeetCode | |
| 97 | Profondeur maximale de l'arbre binaire | C++ | Sur) | Oh) | Facile | LeetCode | |
| 131 | Aperçu du bâtiment | PythonC++ | O (nlogn) | Sur) | Dur | PEV | Trier, BST |
| 140 | Puissance rapide | C++ | O (connexion) | O(1) | Moyen | | |
| 155 | Profondeur minimale de l'arbre binaire | C++ | Sur) | Oh) | Facile | LeetCode | |
| 164 | Arbres de recherche binaires uniques II | C++ | O(n * 4^n / n^(3/2)) | Sur) | Moyen | LeetCode | |
| 177 | Convertir un tableau trié en arbre de recherche binaire avec une hauteur minimale | C++ | Sur) | O (connexion) | Facile | LeetCode | |
| 201 | Construction d'une arborescence de segments | C++ | Sur) | Oh) | Moyen | | Arbre de segments, BST |
| 202 | Requête d'arborescence de segments | C++ | Oh) | Oh) | Moyen | | Arbre de segments, BST |
| 203 | Modifier l'arborescence des segments | C++ | Oh) | Oh) | Moyen | | Arbre de segments, BST |
| 205 | Nombre minimum d'intervalle | C++ | arbre de construction : O(n) , requête : (h) | Oh) | Dur | | Arbre de segments, BST |
| 206 | Somme d'intervalle | C++ | arbre de construction : O(n) , requête : O(logn) | Sur) | Dur | | Arbre de segments, BIT |
| 207 | Somme d'intervalle II | C++ | arbre de construction : O(n) , requête : O(logn) , modification : O(logn) | Sur) | Dur | | Arbre de segments, BIT |
| 245 | Sous-arbre | C++ | O(m*n) | O(1) | Facile | | Morris Traversal |
| 247 | Requête d'arborescence de segments II | C++ | Oh) | Oh) | Dur | | Arbre de segments, BST |
| 248 | Nombre de plus petits nombres | C++ | arbre de construction : O(n) , requête : O(logn) | Oh) | Moyen | | Arbre de segments, BST |
| 371 | Imprimer les nombres par récursion | C++ | Sur) | Sur) | Moyen | | |
| 375 | Cloner un arbre binaire | C++ | Sur) | Oh) | Facile | | |
| 378 | Convertir l'arbre de recherche binaire en liste doublement liée | C++ | Sur) | Oh) | Moyen | | |
| 439 | Construction de l'arborescence de segments II | C++ | Sur) | Oh) | Moyen | | Arbre de segments, BST |
| 453 | Aplatir l'arbre binaire en liste chaînée | C++ | Sur) | Oh) | Facile | LeetCode | |
| 469 | Arbre binaire identique | C++ | Sur) | Oh) | Facile | | |
| 532 | Paires inversées | C++ | O (nlogn) | Sur) | Moyen | variante du décompte du plus petit nombre avant lui-même | BIT, fusionner le tri |
| 535 | Voleur de maison III | C++ | Sur) | Oh) | Moyen | LeetCode | |
Recherche binaire
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 14 | Première position de la cible | C++ | O (connexion) | O(1) | Facile | | |
| 28 | Rechercher une matrice 2D | C++ | O(logm + journal) | O(1) | Facile | LeetCode | |
| 60 | Rechercher une position d'insertion | C++ | O (connexion) | O(1) | Facile | LeetCode | |
| 61 | Rechercher une plage | C++ | O (connexion) | O(1) | Moyen | LeetCode | |
| 62 | Rechercher dans un tableau trié avec rotation | C++ | O (connexion) | O(1) | Moyen | LeetCode | |
| 63 | Rechercher dans le tableau trié avec rotation II | C++ | O (connexion) | O(1) | Moyen | LeetCode | |
| 65 | Médiane de deux tableaux triés | C++ | O(log(min(m, n))) | O(1) | Dur | LeetCode, EPI | Difficile |
| 74 | Première mauvaise version | C++ | O (connexion) | O(1) | Moyen | | |
| 75 | Trouver l'élément de pointe | C++ | O (connexion) | O(1) | Moyen | LeetCode | |
| 76 | Sous-séquence croissante la plus longue | C++ | O (nlogn) | Sur) | Moyen | CTCI | |
| 141 | Carré(x) | C++ | O (connexion) | O(1) | Facile | LeetCode | |
| 159 | Rechercher le minimum dans un tableau trié avec rotation | C++ | O (connexion) | O(1) | Moyen | LeetCode | |
| 160 | Rechercher le minimum dans un tableau trié avec rotation II | C++ | O (connexion) | O(1) | Moyen | LeetCode | |
| 183 | Bois coupé | C++ | O(nlogL) | O(1) | Moyen | | |
| 390 | Trouver Peak Element II | C++JavaPython | O(m+n) | O(1) | Dur | | |
| 437 | Copier des livres | C++ | O(nlogp) | O(1) | Dur | UVa 714 | |
Recherche en largeur
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 69 | Traversée de l'ordre au niveau de l'arbre binaire | C++ | Sur) | Sur) | Moyen | LeetCode | BFS |
| 70 | Traversée d'ordre au niveau de l'arbre binaire II | C++ | Sur) | Sur) | Moyen | LeetCode | BFS |
| 71 | Traversée de l'ordre de niveau en zigzag de l'arbre binaire | C++ | Sur) | Sur) | Moyen | LeetCode | BFS |
| 120 | Échelle de mots | C++ | O(n*d) | O(d) | Moyen | LeetCode | BFS |
| 121 | Échelle de mots II | C++ | O(n*d) | O(d) | Dur | LeetCode | BFS, traçage arrière |
| 127 | Tri topologique | C++ | O(|V|+|E|) | O(|E|) | Moyen | | DFS, BFS |
| 137 | Graphique de clonage | C++ | O(|V|+|E|) | O(|V|) | Moyen | | BFS |
| 176 | Itinéraire entre deux nœuds dans le graphique | C++ | Sur) | Sur) | Moyen | | DFS, BFS |
| 178 | Arbre valide du graphique | C++ | O(|V| + |E|) | O(|V| + |E|) | Moyen | LeetCode | |
| 431 | Rechercher le composant connecté dans le graphique non orienté | C++ | Sur) | Sur) | Moyen | | BFS |
| 477 | Régions environnantes | C++ | O(m*n) | O(m+n) | Moyen | LeetCode | |
Recherche en profondeur d'abord
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 90 | K Somme II | C++ | O(k*C(n,k)) | D'accord) | Moyen | | |
| 376 | Somme du chemin de l'arbre binaire | C++ | Sur) | Oh) | Facile | LeetCode | |
| 433 | Nombre d'îles | C++ | O(m*n) | O(m*n) | Facile | LeetCode | DFS |
| 480 | Chemins d'arbre binaire | C++ | O(n*h) | Oh) | Facile | LeetCode | |
Retour en arrière
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 15 | Permutations | C++ | O(n*n!) | Sur) | Moyen | LeetCode, EPI | |
| 16 | Permutations II | C++ | O(n*n!) | Sur) | Moyen | LeetCode, EPI | |
| 17 | Sous-ensembles | C++ | O(n * 2^n) | O(1) | Moyen | LeetCode | |
| 18 | Sous-ensembles II | C++ | O(n * 2^n) | O(1) | Moyen | LeetCode | |
| 33 | N-Reines | C++ | O(n*n!) | Sur) | Moyen | LeetCode, EPI | |
| 34 | N-Reines II | C++ | O(n*n!) | Sur) | Moyen | LeetCode, EPI | |
| 123 | Recherche de mots | C++ | O(m*n*l) | O(l) | Moyen | LeetCode | |
| 132 | Recherche de mots II | C++ | O(m*n*l) | O(l) | Dur | | Trie, DFS |
| 135 | Somme combinée | C++ | O(k * n^k) | D'accord) | Moyen | LeetCode | DFS |
| 136 | Partitionnement palindrome | C++ | O(2^n) | Sur) | Facile | LeetCode, EPI | |
| 152 | Combinaisons | C++ | O(k * n^k) | D'accord) | Moyen | LeetCode, EPI | |
| 153 | Somme combinée II | C++ | O(k*C(n,k)) | D'accord) | Moyen | LeetCode | DFS |
| 425 | Combinaisons de lettres d'un numéro de téléphone | C++ | O(n * 4^n) | Sur) | Moyen | LeetCode | |
| 426 | Restaurer les adresses IP | C++ | O(1) | O(1) | Moyen | LeetCode | |
| 427 | Générer des parenthèses | C++ | O(4^n / n^(3/2)) | Sur) | Moyen | LeetCode | |
Arbres de recherche binaire
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 11 | Plage de recherche dans l’arborescence de recherche binaire | C++ | Sur) | Oh) | Moyen | PEV | |
| 86 | Itérateur d'arbre de recherche binaire | C++ | O(1) | Oh) | Dur | LeetCode | |
| 87 | Supprimer le nœud dans l'arborescence de recherche binaire | C++ | Oh) | Oh) | Dur | | |
| 249 | Compte du plus petit nombre avant lui-même | C++ | O (nlogn) | Sur) | Dur | | BST, BIT, diviser pour mieux régner, fusionner le tri |
| 360 | Médiane de fenêtre coulissante | C++ | O(nlogw) | O(w) | Dur | | BST, délicat |
| 391 | Nombre d'avions dans le ciel | C++ | O (nlogn) | Sur) | Facile | | BST, tas |
| 401 | Kième plus petit nombre dans la matrice triée | C++ | O(klog(min(m, n, k))) | O(min(m,n,k)) | Moyen | | BST, tas |
Programmation dynamique
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 20 | Somme des dés | C++ | O(n^2) | Sur) | Dur | | |
| 29 | Chaîne entrelacée | C++ | O(m*n) | O(min(m,n)) | Moyen | PEV | |
| 43 | Sous-réseau maximum III | C++ | O(k*n) | O(k*n) | Dur | | |
| 77 | Sous-séquence commune la plus longue | C++ | O(m*n) | O(min(m,n)) | Moyen | | |
| 79 | Sous-chaîne commune la plus longue | C++ | O(m*n) | O(min(m,n)) | Moyen | | |
| 89 | Somme K | C++ | O(k*n*t) | O(n*t) | Dur | | |
| 91 | Coût d'ajustement minimum | C++ | O(k*n*t) | D'accord) | Moyen | | |
| 92 | Sac à dos | C++ | O(m*n) | O(m) | Facile | | |
| 107 | Coupure de mot | C++ | O(n * l^2) | Sur) | Moyen | LeetCode, EPI | |
| 108 | Partitionnement palindrome II | C++ | O(n^2) | Sur) | Moyen | LeetCode, EPI | |
| 109 | Triangle | C++ | Sur) | Sur) | Facile | LeetCode, EPI | |
| 110 | Somme minimale du chemin | C++ | O(m*n) | O(min(m,n)) | Facile | LeetCode, EPI | |
| 111 | Monter les escaliers | C++ | O (connexion) | O(1) | Facile | LeetCode | |
| 115 | Chemins uniques II | C++ | O(m*n) | O(min(m,n)) | Facile | LeetCode, CTCI | DP, Mathématiques |
| 118 | Sous-séquences distinctes | C++ | O(m*n) | O(m) | Moyen | LeetCode | DP |
| 119 | Modifier la distance | C++ | O(m*n) | O(min(m,n)) | Moyen | LeetCode, CTCI | DP |
| 125 | Sac à dos II | C++ | O(m*n) | O(m) | Moyen | | |
| 149 | Meilleur moment pour acheter et vendre des actions | C++ | Sur) | O(1) | Moyen | LeetCode, EPI | |
| 150 | Meilleur moment pour acheter et vendre des actions II | C++ | Sur) | O(1) | Moyen | LeetCode, EPI | |
| 151 | Meilleur moment pour acheter et vendre des actions III | C++ | Sur) | O(1) | Moyen | LeetCode, EPI | |
| 154 | Correspondance d'expressions régulières | C++ | O(m*n) | O(m) | Dur | LeetCode | DP, récursion |
| 168 | Ballons éclatés | C++ | O(n^3) | O(n^2) | Moyen | LeetCode | |
| 191 | Sous-tableau de produits maximal | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 392 | Voleur de maison | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 393 | Meilleur moment pour acheter et vendre des actions IV | C++ | O(k*n) | D'accord) | Dur | LeetCode, EPI | |
| 395 | Pièces de monnaie dans une ligne II | C++ | Sur) | O(1) | Moyen | | |
| 396 | Pièces de monnaie dans une ligne III | C++ | O(n^2) | Sur) | Dur | | |
| 397 | Sous-séquence continue croissante la plus longue | C++ | Sur) | O(1) | Facile | | |
| 398 | Sous-séquence continue croissante la plus longue II | C++ | O(m*n) | O(m*n) | Dur | | |
| 403 | Somme de sous-tableau continue II | C++ | Sur) | O(1) | Moyen | PEV | |
| 430 | Chaîne de brouillage | C++ | O(n^4) | O(n^3) | Dur | LeetCode | |
| 435 | Problème de bureau de poste | C++ | O(k*n^2) | Sur) | Dur | PCU 1160 | |
| 436 | Carré maximal | C++ | O(m*n) | Sur) | Moyen | LeetCode | |
| 512 | Méthodes de décodage | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 513 | Carrés parfaits | C++ | O(n * carré(n)) | Sur) | Moyen | LeetCode | |
| 514 | Clôture de peinture | C++ | Sur) | O(1) | Facile | LeetCode | |
| 515 | Maison de peinture | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 516 | Maison de peinture II | C++ | O(n*k) | D'accord) | Dur | LeetCode | |
| 534 | Voleur de maison II | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 564 | Sac à dos VI | C++ | O(n*t) | O(t) | Moyen | | |
Cupide
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 41 | Sous-tableau maximum | C++ | Sur) | O(1) | Facile | LeetCode | |
| 42 | Sous-tableau maximal II | C++ | Sur) | Sur) | Moyen | | |
| 44 | Sous-tableau minimum | C++ | Sur) | O(1) | Facile | | |
| 45 | Différence maximale de sous-tableau | C++ | Sur) | Sur) | Moyen | | |
| 116 | Jeu de saut | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 117 | Jeu de saut II | C++ | Sur) | O(1) | Moyen | LeetCode | |
| 182 | Supprimer des chiffres | C++ | Sur) | Sur) | Moyen | | |
| 187 | Station-service | C++ | Sur) | O(1) | Facile | LeetCode | |
| 192 | Correspondance de caractères génériques | C++ | O(m+n) | O(1) | Dur | LeetCode | Gourmand, DP, Récursion |
| 402 | Somme de sous-tableau continue | C++ | Sur) | O(1) | Moyen | PEV | |
| 412 | Bonbons | C++ | Sur) | Sur) | Dur | LeetCode | Cupide |
| 552 | Créer un nombre maximum | C++ | O(k * (m + n + k)) ~ O(k * (m + n + k^2)) | O(m + n + k^2) | Dur | LeetCode | Gourmand, DP |
Conception OO
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 204 | Singleton | C++ | O(1) | O(1) | Facile | | |
| 208 | Surcharge des opérateurs d'affectation (C++ uniquement) | C++ | Sur) | O(1) | Moyen | | |
| 496 | Usine de jouets | C++ | O(1) | O(1) | Facile | | |
| 497 | Usine de formes | C++ | O(1) | O(1) | Facile | | |
| 498 | Parking | C++ | O(n*m*k) | O(n*m*k) | Dur | CTCI | Conception OO, idiome Pimpl, pointeur intelligent |
Conception du système
| # | Titre | Solution | Temps | Espace | Difficulté | Étiqueter | Note |
|---|
| 501 | Mini-Twitter | C++ | O(klogu) | O(t+f) | Moyen | | |