Pourquoi TypeScript est-il le langage idéal pour LeetCode ?
\n\nSi vous résolvez encore des problèmes sur LeetCode en JavaScript, il est temps de passer à TypeScript. Pourquoi ? Parce que le typage strict élimine toute une classe d'erreurs avant même l'exécution du code. Vous ne pouvez pas accidentellement passer une chaîne là où un nombre est attendu, et le compilateur vous indique lui-même quelles méthodes sont disponibles sur un objet. C'est comme conduire une voiture avec un pilote automatique : plus rapide, plus sûr et plus agréable.
\n\nLeetCode n'est pas seulement une plateforme pour bachoter des algorithmes. C'est un terrain d'entraînement où vous perfectionnez des compétences réellement utiles en production. Et aujourd'hui, TypeScript est le standard de facto pour le développement d'entreprise. Des entreprises comme Google, Microsoft et Airbnb recherchent des développeurs capables d'écrire du code typé. Ainsi, en résolvant des problèmes sur LeetCode en TypeScript, vous faites d'une pierre deux coups : vous préparez votre entretien et améliorez vos compétences réelles.
\n\nDans cet article, nous allons voir par où commencer, quels types et structures de données étudier, et résoudre 3 problèmes de niveaux différents – du facile au difficile. C'est parti !
\n\nCe qu'il faut savoir avant de commencer
\n\nAvant de plonger dans les problèmes, assurez-vous d'avoir les bases. TypeScript est une surcouche de JavaScript, il faut donc d'abord maîtriser JS : closures, promesses, méthodes de tableaux, manipulation d'objets. Sans cela, TypeScript semblera n'être qu'un sucre syntaxique superflu.
\n\nTypes principaux utiles sur LeetCode
\n- \n
number,string,boolean– les bases, indispensables \n number[],string[]– les tableaux, présents dans 90% des problèmes \n Record<string, number>– objet utilisé comme dictionnaire (hash map) \n Map<K, V>– alternative à l'objet avec conservation de l'ordre \n Set<T>– pour les valeurs uniques \n Tuple– tuples, utiles pour retourner des paires de valeurs \n null | undefined– gestion des cas limites \n
Structures de données les plus courantes
\n- \n
- Tableaux – la base absolue. Tableaux bidimensionnels, tri, recherche binaire \n
- Tables de hachage – pour la recherche rapide (problème Two Sum – un classique) \n
- Pile et file – pour les problèmes de parenthèses, BFS, DFS \n
- Listes chaînées – inversion, fusion, détection de cycle \n
- Arbres – binaires, arbres binaires de recherche, parcours \n
- Graphes – généralement pour les entretiens de niveau Senior \n
N'essayez pas de tout apprendre d'un coup. Commencez par les tableaux et les tables de hachage – cela couvrira 70% des problèmes de niveau Facile et Moyen.
\n\nComment configurer l'environnement pour TypeScript sur LeetCode
\n\nLeetCode prend en charge TypeScript nativement. Lors du choix du langage, cliquez simplement sur "TypeScript" dans le menu déroulant. Cependant, si vous souhaitez écrire du code localement et le tester, voici la configuration minimale :
\n\nnpm init -y\nnpm install typescript @types/node --save-dev\nnpx tsc --init\n\nCréez un fichier solution.ts et lancez la compilation avec la commande npx tsc solution.ts && node solution.js. Cela vous aidera à vous habituer au typage strict et à détecter les erreurs à la volée.
Analyse de 3 problèmes en TypeScript : du Facile au Difficile
\n\nPassons maintenant à la pratique. J'ai choisi trois problèmes qui illustrent parfaitement les capacités de TypeScript et qui sont fréquents lors des entretiens.
\n\n1. Two Sum (Facile) – le grand classique
\n\nProblème : étant donné un tableau de nombres et une cible, trouver deux nombres dont la somme est égale à la cible et retourner leurs indices.
\n\nfunction twoSum(nums: number[], target: number): number[] {\n const map = new Map<number, number>();\n\n for (let i = 0; i < nums.length; i++) {\n const complement = target - nums[i];\n if (map.has(complement)) {\n return [map.