Tehnica sliding-window menține un interval contigu (fereastră) pe un array sau string și îl glisează în loc să recalculeze de la zero, rezolvând multe probleme de subarray/substring în O(n).
Ideea
Extindeți fereastra mutând marginea dreaptă; micșorați-o mutând marginea stângă atunci când o constrângere este încălcată. Reutilizați calculul anterior în loc să rescannați.
Exemplu: suma maximă a oricărei ferestre de dimensiune k
():
window = (arr[:k])
best = window
i (k, (arr)):
window += arr[i] - arr[i - k]
best = (best, window)
best
max_window_sum([, , , , , ], )
