La técnica sliding-window mantiene un rango contiguo (ventana) sobre un array o string y lo desliza en lugar de recalcular desde cero, resolviendo muchos problemas de subarray/substring en O(n).
La idea
Expande la ventana moviendo el borde derecho; contráela moviendo el borde izquierdo cuando se viola una restricción. Reutiliza el cálculo anterior en lugar de volver a escanear.
Ejemplo: suma máxima de cualquier ventana de tamaño k
():
window = (arr[:k])
best = window
i (k, (arr)):
window += arr[i] - arr[i - k]
best = (best, window)
best
max_window_sum([, , , , , ], )
