5 patterns qui couvrent 80 % des exercices
La plupart des exercices d'entretien sont des variations de quelques patterns. Savoir les reconnaître te fait gagner les cinq premières minutes.
À retenir
- Two pointers : tableau trié, paires, palindromes.
- Sliding window : sous-tableau ou sous-chaîne contigus.
- Hash map : fréquences, doublons, complément.
- Backtracking : combinaisons, permutations, sudoku.
- BFS / DFS : graphes, grilles, arbres.
Reconnaître le déclencheur
« Tableau trié » → two pointers. « Sous-tableau contigu de taille k » → sliding window. « Toutes les combinaisons » → backtracking. « Plus court chemin » → BFS.
Sliding window en 6 lignes
On étend la fenêtre à droite, on la rétrécit à gauche tant que la contrainte est violée.
let g = 0, best = 0; const vus = new Set();
for (let d = 0; d < s.length; d++) {
while (vus.has(s[d])) vus.delete(s[g++]);
vus.add(s[d]);
best = Math.max(best, d - g + 1);
}Annoncer le pattern à voix haute
Dire « ça ressemble à un sliding window » rassure immédiatement le recruteur, même si tu ajustes ensuite ton approche.
Pièges fréquents
- Se lancer dans le code avant d'avoir identifié le pattern.
- Confondre sous-suite et sous-tableau contigu.
- Oublier de gérer la fenêtre vide ou le tableau vide.
Questions que le recruteur peut poser
- Quel pattern reconnais-tu ici ?
- Comment adapterais-tu la solution si le tableau n'était pas trié ?
- Quels sont les cas limites ?