Sliding-window-tekniken upprätthåller ett sammanhängande intervall (fönster) över en array eller sträng och glider det i stället för att omberäkna från början, vilket löser många subarray/substring-problem i O(n).
Idén
Utöka fönstret genom att flytta högerkanten; krympa det genom att flytta vänserkanten när en begränsning bryts. Återanvänd tidigare beräkning istället för att genomsöka igen.
Exempel: maximal summa för något fönster av storlek k
():
window = (arr[:k])
best = window
i (k, (arr)):
window += arr[i] - arr[i - k]
best = (best, window)
best
max_window_sum([, , , , , ], )
