Sliding-window-teknikken opprettholder et sammenhengende område (vindu) over en array eller string og glir det i stedet for å beregne på nytt, og løser mange subarray-/substring-problemer i O(n).
Ideen
Utvid vinduet ved å flytte høyre kant; krymp det ved å flytte venstre kant når en begrensning er brutt. Gjenbruk den forrige beregningen i stedet for å skanne på nytt.
Eksempel: maksimal sum av ethvert vindu av størrelse k
():
window = (arr[:k])
best = window
i (k, (arr)):
window += arr[i] - arr[i - k]
best = (best, window)
best
max_window_sum([, , , , , ], )
