Repositorio de autoestudio de algoritmos y estructuras de datos en Rust, pensado para practicar resolución de problemas, análisis de complejidad y hábitos de entrevista técnica.
El objetivo es que este proyecto sirva como material de estudio reutilizable: cada solución debe tener una implementación clara, tests automatizados y notas que expliquen el patrón usado.
- Soluciones de algoritmos organizadas por patrón.
- Tests de integración para validar cada ejercicio.
- Notas de estudio con ideas, invariantes y errores comunes.
- Un plan de práctica por semanas.
- Una ruta avanzada para ampliar el alcance después del plan base.
- Wiki con documentación resumida del avance.
src/
patterns/
binary_search.rs
dynamic_programming.rs
graphs.rs
greedy.rs
hashing.rs
heaps.rs
intervals.rs
linked_lists.rs
matrices.rs
math_bit.rs
range_queries.rs
recursion_backtracking.rs
sliding_window.rs
stack_queue.rs
string_algorithms.rs
trees.rs
tries.rs
two_pointers.rs
weighted_graphs.rs
tests/
binary_search_test.rs
dynamic_programming_test.rs
graphs_test.rs
greedy_test.rs
hashing_test.rs
heaps_test.rs
intervals_test.rs
linked_lists_test.rs
matrices_test.rs
math_bit_test.rs
range_queries_test.rs
recursion_backtracking_test.rs
sliding_window_test.rs
stack_queue_test.rs
string_algorithms_test.rs
trees_test.rs
tries_test.rs
two_pointers_test.rs
weighted_graphs_test.rs
notes/
week-01.md
week-02-03.md
week-04-05.md
week-06.md
week-07-08.md
week-09-10.md
week-11-12.md
week-13.md
week-14-15.md
week-16.md
week-17-18.md
week-19-20.md
week-21-23.md
week-24-25.md
complexity-cheatsheet.md
mock-interview-rubric.md
review-queue.md
simulations/
simulacro-01-minimum-window-substring.md
simulacro-02-course-schedule.md
simulacro-03-coin-change.md
rust-interview-patterns.md
mistakes.md
plan/
plan-alcance-avanzado.md
plan-algoritmos-rust.md
Ejecutar los tests:
cargo testFormatear el código:
cargo fmtPara estudiar un problema:
- Leer el enunciado y escribir ejemplos.
- Identificar el patrón principal.
- Escribir tests antes de implementar.
- Resolver con una solución clara.
- Anotar complejidad temporal y espacial.
- Registrar errores o bloqueos en la bitácora.
La wiki es el punto de entrada recomendado para estudiar el avance, revisar patrones y seguir las semanas del plan:
Planes locales:
- Plan base de algoritmos en Rust
- Plan de alcance avanzado
- Cierre del hito de 140 problemas
- Cierre del hito de 190 problemas
Páginas destacadas:
- Plan de Alcance Avanzado
- Cierre del Hito de 190 Problemas
- Guía de Complejidad
- Semana 1: Rust, Hashing, Arrays y Strings
- Semanas 2 y 3: Arrays, Strings, Hashing y Sumas de Prefijos
- Semanas 4 y 5: Two Pointers, Sliding Window y Stack
- Semana 6: Búsqueda Binaria
- Semanas 7 y 8: Recursión, Backtracking y Listas Enlazadas
- Semanas 9 y 10: Árboles
- Semanas 11 y 12: Grafos
- Semana 13: Montículos, Intervalos y Greedy
- Semanas 14 y 15: Programación Dinámica
- Semana 16: Simulacros y Repaso
- Semanas 17 y 18: Complejidad, Matemáticas y Bits
- Semanas 19 y 20: Tries y Cadenas
- Semanas 21 a 23: Grafos Ponderados
- Semanas 24 y 25: Consultas por Rangos
- Semana 26: Geometría y Temas Selectivos
- Semanas 27 y 28: Simulacros Avanzados
- Patrones de Rust para Entrevista
- Semana documentada: 27-28
- Problemas implementados: 190
- Tests automatizados: 449
- Ruta avanzada: hito 190 completado; repeticiones personales fuera del avance autónomo
- Lenguaje: Rust
Este repositorio prioriza:
- Comprender patrones antes que memorizar soluciones.
- Practicar con tests desde el inicio.
- Explicar decisiones y compensaciones.
- Repetir problemas fallados hasta dominarlos.
- Mantener notas útiles para repaso futuro.