Tehnika drsečega okna vzdržuje contiguous razpon (okno) čez polje ali niz in ga drsi namesto da bi ponovnega izračuna iz začetka, kar reši många nalog s subarray/substring v O(n).
Ideja
Razvij okno z premikanjem desnega roba; krči ga z premikanjem levega roba, kadar je omejitev kršena. Ponovno uporabi prejšnji izračun namesto da bi ponovno skeniral.
Primer: največja vsota kateregakoli okna velikosti k
():
window = (arr[:k])
best = window
i (k, (arr)):
window += arr[i] - arr[i - k]
best = (best, window)
best
max_window_sum([, , , , , ], )
