A técnica sliding-window mantém um intervalo contíguo (janela) em um array ou string e o desliza em vez de recalcular do zero, resolvendo muitos problemas de subarray/substring em O(n).
A ideia
Expanda a janela movendo a borda direita; encolha-a movendo a borda esquerda quando uma restrição é violada. Reutilize o cálculo anterior em vez de verificar novamente.
Exemplo: soma máxima de qualquer janela de tamanho k
():
window = (arr[:k])
best = window
i (k, (arr)):
window += arr[i] - arr[i - k]
best = (best, window)
best
max_window_sum([, , , , , ], )
