Portfolio profesional de 181+ problemas resueltos de LeetCode y FreeCodeCamp, desarrollados con enfoque en código limpio, testing riguroso y documentación exhaustiva. Este repositorio demuestra habilidades prácticas en algoritmos, estructuras de datos y mejores prácticas de desarrollo.
🔗 Ver Línea de Tiempo Interactiva de Ejercicios
Explora todos los problemas resueltos en una visualización dinámica que muestra el progreso y evolución a lo largo del tiempo.
- Total de problemas: 181+
- Nivel Easy: 151 problemas
- Nivel Medium: 29 problemas
- Nivel Hard: 1 problema
- Metodología: TDD (Test-Driven Development)
- Lenguajes: TypeScript, JavaScript
Este repositorio es evidencia práctica de:
- ✅ Resolución de Problemas: Soluciones optimizadas para 181+ algoritmos
- ✅ Test-Driven Development: Cobertura completa de tests para cada problema
- ✅ Código Limpio: Código mantenible, legible y bien documentado
- ✅ TypeScript/JavaScript: Dominio de ambos lenguajes y sus ecosistemas
- ✅ Estructuras de Datos: Arrays, Linked Lists, Trees, Graphs, Hash Tables, etc.
- ✅ Algoritmos: Sorting, Searching, Dynamic Programming, Recursion, Greedy, etc.
- ✅ Documentación Técnica: Explicaciones detalladas de cada solución
- ✅ Automatización: Scripts personalizados para optimizar el flujo de trabajo
- ✅ Análisis de Complejidad: Evaluación de complejidad temporal y espacial
Array • String • Math • Dynamic Programming • Recursion • Two Pointers • Sliding Window • Binary Search • DFS • BFS • Linked List • Hash Table • Stack • Queue • Greedy • Backtracking • Bit Manipulation • Sorting • Graph • Tree • Design Patterns • Async/Await • Promises • Closure • Higher-Order Functions • y más...
├── src/
│ ├── leetcode/ # 30 problemas LeetCode organizados por series
│ │ ├── daily/ # Desafíos diarios
│ │ ├── top-interview/ # Problemas comunes en entrevistas
│ │ ├── binary-search/ # Especialización en búsqueda binaria
│ │ └── 30-days-js/ # Challenge de 30 días de JavaScript
│ └── freecodecamp/ # 151 problemas FreeCodeCamp
│ ├── coding-interview-prep/
│ └── rosetta-code/
├── scripts/ # Herramientas de automatización
├── problems-data.json # Base de datos de problemas
└── tests/ # Suite de tests completa
Cada problema incluye:
- Implementación completa en TypeScript o JavaScript
- Suite de tests exhaustiva con múltiples casos de prueba
- Documentación detallada con explicación del enfoque y razonamiento
- Análisis de complejidad (tiempo y espacio)
- Reflexiones post-solución sobre alternativas y optimizaciones
problema-ejemplo/
├── problema-ejemplo.ts # Implementación
├── problema-ejemplo.test.ts # Tests
├── problema-ejemplo-explanation.md # Documentación
└── problema-ejemplo-post-solution.md # Reflexiones
- TypeScript - Tipado estático para código más robusto
- JavaScript (ES6+) - Features modernas del lenguaje
- Vitest - Framework de testing rápido y moderno
- Node.js - Runtime para scripts de automatización
- Git - Control de versiones con commits organizados
npm run new-problem <serie> <nombre> [categoría] # Crear nuevo problema
npm run validate-problems # Validar estructura
npm run format-files # Formatear documentación
npm run test # Ejecutar todos los tests
npm run build # Compilar TypeScript-
TDD (Test-Driven Development):
- Escribir tests primero
- Implementar solución mínima
- Refactorizar para optimizar
-
Documentación Completa:
- Explicación del problema
- Análisis del enfoque
- Complejidad algorítmica
- Reflexiones y aprendizajes
-
Código Limpio:
- Nombres descriptivos
- Funciones pequeñas y enfocadas
- Comentarios cuando es necesario
- Consistencia en el estilo
-
Mejora Continua:
- Revisión de soluciones alternativas
- Optimización de complejidad
- Patrones reutilizables
Este repositorio demuestra:
- Consistencia: Práctica diaria y compromiso a largo plazo
- Calidad: Código profesional con tests y documentación
- Capacidad de Aprendizaje: Evolución constante y mejora continua
- Pensamiento Algorítmico: Resolución eficiente de problemas complejos
- Mejores Prácticas: TDD, código limpio, y documentación técnica
- ✅ Práctica constante de algoritmos y estructuras de datos
- ✅ Preparación para entrevistas técnicas en empresas FAANG
- ✅ Desarrollo de habilidades de problem-solving
- ✅ Construcción de portfolio técnico verificable
- ✅ Documentación del proceso de aprendizaje
- 181+ problemas resueltos con soluciones completas y documentadas
- 100% de cobertura de tests en todos los problemas
- Documentación bilingüe (español) para explicaciones técnicas
- Automatización con scripts personalizados para optimizar el workflow
- Análisis de complejidad en cada solución (Big O notation)
- Patrones de diseño aplicados cuando es apropiado
¿Interesado en discutir oportunidades o colaboraciones?
Este repositorio está en constante actualización con nuevos problemas y mejoras.
"La práctica deliberada y la reflexión constante son la clave para dominar algoritmos y programación."