Sliding-window tehnika održava neprekidni raspon (prozor) preko niza ili string-a i klizi kroz njega umjesto da ponovo računa od početka, rješavajući mnoge probleme sa subnizovima/podstringovima u O(n).
Osnovni koncept
Proširite prozor pomicanjem desne granice; skupite ga pomicanjem lijeve granice kada je ograničenje narušeno. Ponovno iskoristite prethodnu računicu umjesto da ponovno skenirate.
Primjer: maksimalna suma bilo kojeg prozora veličine k
():
window = (arr[:k])
best = window
i (k, (arr)):
window += arr[i] - arr[i - k]
best = (best, window)
best
max_window_sum([, , , , , ], )
