Skip to content

Plan de Alcance Avanzado

Joel Alvarez edited this page Jul 12, 2026 · 50 revisions

Plan de Alcance Avanzado

Esta página resume la expansión del repo después de la semana 16. El objetivo es cubrir los temas que faltan sin perder el método del proyecto: resolver en Rust, escribir tests, documentar patrones y repetir errores.

Punto de Partida

  • Problemas implementados: 69.
  • Tests automatizados: 162.
  • Simulacros documentados: 3.
  • Patrones base cubiertos: hashing, two pointers, sliding window, stack, búsqueda binaria, backtracking, listas enlazadas, árboles, grafos básicos, montículos, intervalos, greedy y programación dinámica.

Brechas a Cubrir

  • Complejidad formal: Θ, Ω y amortizada.
  • Matemáticas y manipulación de bits.
  • Trie y algoritmos de cadenas.
  • Grafos ponderados: Dijkstra, Bellman-Ford y Floyd-Warshall.
  • Árboles de expansión mínima: Prim y Kruskal.
  • Tarjan para puentes y componentes.
  • Fenwick tree y segment tree.
  • Suffix array, Aho-Corasick y nociones de suffix tree.
  • Convex hull y geometría básica.

Metas de Volumen

Hito Problemas acumulados Enfoque
Base consolidada 100 Repetición, casos borde y problemas medios frecuentes
Avanzado inicial 140 Tries, bits, matemáticas y grafos ponderados básicos
Avanzado completo 190 Segment tree, Fenwick, strings avanzados y MST
Largo plazo 260+ Problemas difíciles selectivos y simulacros mixtos

La meta práctica es llegar primero a 190 problemas bien probados y documentados. Un volumen mayor queda como horizonte de largo plazo, no como requisito inmediato.

Fases

Fase 1: Complejidad, Matemáticas y Bits

Duración sugerida: semanas 17 y 18.

Estado: en progreso.

Entregables:

  • notes/complexity-cheatsheet.md: creado.
  • src/patterns/math_bit.rs: creado.
  • tests/math_bit_test.rs: creado.
  • notes/week-17-18.md: creado.

Problemas iniciales:

  • Single Number.
  • Number of 1 Bits.
  • Counting Bits.
  • Missing Number.
  • Reverse Bits.
  • Pow(x, n).
  • Sieve of Eratosthenes.
  • Maximum Subarray.

Avance acumulado:

  • Problemas implementados: 12.
  • Tests agregados: 28.
  • Funciones principales: single_number, missing_number, count_ones, count_bits, reverse_bits, is_power_of_two, fast_pow, gcd, lcm, sieve, maximum_subarray y majority_element.

Fase 2: Tries y Cadenas

Duración sugerida: semanas 19 y 20.

Estado: iniciada.

Entregables:

  • src/patterns/tries.rs: creado.
  • src/patterns/string_algorithms.rs: creado.
  • tests/tries_test.rs: creado.
  • tests/string_algorithms_test.rs: creado.
  • notes/week-19-20.md: creado.

Problemas iniciales:

  • Implement Trie.
  • Design Add and Search Words Data Structure.
  • Word Search II.
  • Find All Anagrams in a String.
  • Repeated Substring Pattern.
  • Longest Duplicate Substring.

Primer avance:

  • Problemas implementados: 6.
  • Tests agregados: 19.
  • Funciones y estructuras principales: Trie, WordDictionary, replace_words, find_pattern_positions, find_anagram_starts y repeated_substring_pattern.

Fase 3: Grafos Ponderados y Algoritmos Clásicos

Duración sugerida: semanas 21 a 23.

Estado: iniciada.

Entregables:

  • src/patterns/weighted_graphs.rs: creado.
  • tests/weighted_graphs_test.rs: creado.
  • notes/week-21-23.md: creado.

Problemas iniciales:

  • Network Delay Time.
  • Cheapest Flights Within K Stops.
  • Path With Minimum Effort.
  • Min Cost to Connect All Points.
  • Critical Connections in a Network.

Avance acumulado:

  • Problemas implementados: 11.
  • Tests agregados: 24.
  • Funciones principales: dijkstra_shortest_paths, network_delay_time, bellman_ford_shortest_paths, floyd_warshall_all_pairs, prim_minimum_spanning_tree_weight, kruskal_minimum_spanning_tree_weight, cheapest_flight_within_k_stops, minimum_effort_path, critical_connections, min_cost_connect_points y find_critical_and_pseudo_critical_edges.

Fase 4: Consultas por Rangos

Duración sugerida: semanas 24 y 25.

Estado: iniciada.

Entregables:

  • src/patterns/range_queries.rs: creado.
  • tests/range_queries_test.rs: creado.
  • notes/week-24-25.md: creado.

Problemas iniciales:

  • Range Sum Query Immutable.
  • Range Sum Query Mutable.
  • Count of Smaller Numbers After Self.
  • Reverse Pairs.
  • Corporate Flight Bookings.
  • My Calendar I.

Avance acumulado:

  • Problemas implementados: 10.
  • Tests agregados: 28.
  • Funciones y estructuras principales: FenwickTree, RangeSumQuery, SegmentTree, DifferenceArray, corporate_flight_bookings, car_pooling, count_smaller_numbers_after_self, reverse_pairs, MyCalendar y MyCalendarTwo.

Fase 5: Geometría y Temas Selectivos

Duración sugerida: semana 26.

Estado: iniciada.

Entregables:

  • src/patterns/geometry.rs
  • tests/geometry_test.rs
  • notes/week-26.md

Problemas iniciales:

  • Erect the Fence.
  • K Closest Points to Origin.
  • Max Points on a Line.
  • The Skyline Problem como reto opcional.

Avance acumulado:

  • Problemas implementados: 4.
  • Tests agregados: 8.
  • Funciones y estructuras principales: Point, Orientation, cross_product, orientation, convex_hull y k_closest_points.

Fase 6: Simulacros Avanzados y Repetición

Duración sugerida: semanas 27 y 28.

Entregables:

  • notes/week-27-28.md
  • notes/simulations/simulacro-04-grafos-ponderados.md
  • notes/simulations/simulacro-05-strings-avanzados.md
  • notes/simulations/simulacro-06-range-queries.md

Criterio de cierre:

  • Completar 6 simulacros acumulados.
  • Tener al menos 20 problemas repetidos.
  • Llegar a 140 problemas implementados como mínimo.
  • Mantener cargo test pasando.

Orden Recomendado

  1. Crear la guía de complejidad.
  2. Agregar math_bit con problemas pequeños.
  3. Agregar tries.
  4. Agregar KMP en string_algorithms.
  5. Agregar Dijkstra y Bellman-Ford.
  6. Agregar Prim y Kruskal.
  7. Agregar Tarjan.
  8. Agregar Fenwick tree.
  9. Agregar segment tree.
  10. Agregar convex hull.
  11. Crear 3 simulacros avanzados.
  12. Actualizar README y wiki después de cada bloque.

Definición de Terminado

Cada bloque queda terminado cuando:

  • Tiene código en src/patterns.
  • Tiene tests en tests.
  • Tiene nota semanal en notes.
  • Actualiza la cola de repaso si hubo errores.
  • Actualiza README o wiki cuando cambia el mapa de estudio.
  • cargo fmt y cargo test pasan.
  • El avance queda en commit pequeño y push.

Clone this wiki locally