TL;DR
- El Problema: Optimización de complejidad temporal y espacial para estructuras de datos clave.
- El Enfoque: Guía en Java, clara y para principiantes, del set clásico de problemas de entrevista estilo CTCI. Cómo funciona la serie y por dónde empezar.
- Complejidad: Relación óptima de tiempo y espacio con gestión de casos límite.
Si te preparas para entrevistas de código, verás las mismas familias de problemas una y otra vez: arrays, strings, listas enlazadas, árboles, recursión, bits, ordenación y un montón de puzzles "moderate" y "hard".
Esta serie es un camino en Java, pensado para enseñar, sobre ese set clásico de problemas (el estilo de Cracking the Coding Interview, 6.ª edición). Cada artículo es un problema. Cada solución se explica para que un principiante la siga sin conocer el "truco" de antemano.
No es una copia de ningún libro. Los problemas se plantean en lenguaje claro, las soluciones son explicaciones originales en Java, y el objetivo es entender, no memorizar claves.
Qué incluye cada post de problema
- Analogía cotidiana
- Enunciado en palabras simples
- Cómo pensar antes de codear
- Java limpio
- Complejidad
- Casos límite
- Recap para un amigo
Tag de toda la serie: Algoritmos.
Mapa por capítulo
| Ch | Tema | Empieza aquí |
|---|---|---|
| 1 | Arrays and Strings | Is Unique |
| 2 | Linked Lists | Remove Dups |
| 3 | Stacks and Queues | Three in One |
| 4 | Trees and Graphs | Route Between Nodes |
| 5 | Bit Manipulation | Insertion |
| 6 | Math and Logic | The Heavy Pill |
| 7 | Object-Oriented Design | Deck of Cards |
| 8 | Recursion and DP | Triple Step |
| 9 | System Design (set CTCI) | Stock Data |
| 10 | Sorting and Searching | Sorted Merge |
| 11 | Testing | Mistake |
| 12 | C and C++ | Last K Lines |
| 13 | Java | Private Constructor |
| 14 | Databases | Multiple Apartments |
| 15 | Threads and Locks | Thread vs Process |
| 16 | Moderate | Number Swapper |
| 17 | Hard | Add Without Plus |
Checklist completa en el repo: docs/ctci-series-index.md.
Cómo practicar
- Lee solo el problema. 10-20 minutos.
- Escribe brute force primero.
- Abre el artículo y compara el enfoque.
- Recodifica al día siguiente de memoria.
- Di la complejidad en voz alta.
Empieza por 1.1: Is Unique.
