Skip to content

Plan de Alcance Avanzado

Joel Alvarez edited this page Jul 13, 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 de llegar a 190 problemas bien probados y documentados quedó completada. Un volumen mayor queda como horizonte de largo plazo, no como requisito inmediato.

El hito mínimo de 140 problemas ya quedó cerrado. El hito de 190 problemas también quedó completado y está documentado en Cierre del Hito de 190 Problemas.

Avance del hito 190: 190 de 190 problemas implementados; faltan 0 problemas.

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: 17.
  • Tests agregados: 41.
  • Funciones principales: single_number, missing_number, count_ones, count_bits, reverse_bits, hamming_distance, is_power_of_two, is_perfect_square, fast_pow, add_binary, plus_one, gcd, lcm, trailing_zeroes, sieve, maximum_subarray y majority_element.

Fase 2: Tries y Cadenas

Duración sugerida: semanas 19 y 20.

Estado: completada.

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.

Avance acumulado:

  • Problemas implementados: 10.
  • Tests agregados: 31.
  • Funciones y estructuras principales: Trie, WordDictionary, replace_words, find_words, find_pattern_positions, find_multi_pattern_positions, find_anagram_starts, repeated_substring_pattern, longest_common_prefix y longest_duplicate_substring.

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: 12.
  • Tests agregados: 27.
  • 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, strongly_connected_components, 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: 11.
  • Tests agregados: 33.
  • Funciones y estructuras principales: FenwickTree, RangeSumQuery, SegmentTree, LazySegmentTree, 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: 6.
  • Tests agregados: 15.
  • Funciones y estructuras principales: Point, Orientation, cross_product, orientation, convex_hull, k_closest_points, max_points_on_a_line y get_skyline.

Fase 6: Simulacros Avanzados y Repetición

Duración sugerida: semanas 27 y 28.

Estado: iniciada.

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

Avance acumulado:

  • Simulacros avanzados creados: 3.
  • Simulacros acumulados ejecutados: 6 de 6.
  • Problemas repetidos: 6 de 20.
  • Problemas implementados: 140 de 140 como mínimo.
  • Faltan para cierre mínimo del repositorio: 0 problemas implementados.
  • Estado del cierre autónomo del repositorio: completado.
  • Repeticiones dirigidas: fuera del alcance de este cierre autónomo.
  • Enfoque: práctica cronometrada, explicación verbal y repetición dirigida.

Criterio de cierre:

  • Completar 6 simulacros acumulados.
  • Tener al menos 20 problemas repetidos.
  • Llegar a 140 problemas implementados como mínimo. Completado.
  • 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