Sliding-window-teknikken opretholder et sammenhængende område (vindue) over et array eller en streng og glider det i stedet for at genberegne fra bunden, løser mange subarray/substring-problemer i O(n).
Ideen
Udvid vinduet ved at flytte den højre kant; krympe det ved at flytte den venstre kant, når en begrænsning krænkes. Genbruge den tidligere beregning i stedet for at opscan.
Eksempel: maksimal sum af ethvert vindue af størrelse k
():
window = (arr[:k])
best = window
i (k, (arr)):
window += arr[i] - arr[i - k]
best = (best, window)
best
max_window_sum([, , , , , ], )
