-
Notifications
You must be signed in to change notification settings - Fork 0
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.
- 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.
- 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.
| 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.
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_subarrayymajority_element.
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_prefixylongest_duplicate_substring.
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_pointsyfind_critical_and_pseudo_critical_edges.
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,MyCalendaryMyCalendarTwo.
Duración sugerida: semana 26.
Estado: iniciada.
Entregables:
src/patterns/geometry.rstests/geometry_test.rsnotes/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_lineyget_skyline.
Duración sugerida: semanas 27 y 28.
Estado: iniciada.
Entregables:
notes/week-27-28.mdnotes/simulations/simulacro-04-grafos-ponderados.mdnotes/simulations/simulacro-05-strings-avanzados.mdnotes/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 testpasando.
- Crear la guía de complejidad.
- Agregar
math_bitcon problemas pequeños. - Agregar
tries. - Agregar KMP en
string_algorithms. - Agregar Dijkstra y Bellman-Ford.
- Agregar Prim y Kruskal.
- Agregar Tarjan.
- Agregar Fenwick tree.
- Agregar segment tree.
- Agregar convex hull.
- Crear 3 simulacros avanzados.
- Actualizar README y wiki después de cada bloque.
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 fmtycargo testpasan. - El avance queda en commit pequeño y push.