Overview
Una ventana deslizante mantiene un subconjunto contiguo de elementos y desliza para explorar todos los subarreglos sin recalcular desde cero.
Analogy
Como mirar por una ventana de tren: ves un trozo del paisaje, y mientras el tren avanza, el panorama se actualiza — entra un nuevo árbol, sale uno viejo.
Step-by-step
- Define el tamaño de ventana (fijo) o condición (variable)
- Inicializa la ventana con los primeros elementos
- Desliza: añade el próximo elemento, elimina el que se va
- Actualiza el resultado en cada paso
Visual
[2,1,5,1,3,2], k=3
[2,1,5]=8 → [1,5,1]=7 → [5,1,3]=9 → [1,3,2]=6
Máximo: 9
Common mistakes
- Recalcular la suma de la ventana desde cero — O(nk)
- Olvidar manejar el caso donde k > longitud de la lista
Practice questions
- Suma máxima de subarray de tamaño k
- Subcadena sin caracteres repetidos más larga
Time
O(n) — cada elemento entra y sale de la ventana una vez
Space
O(k) — para la ventana de tamaño k