A sliding-window (csúszó ablak) technika egy szomszédos tartományt (ablakot) tart fenn egy tömb vagy karakterlánc felett, és azt csúsztatja ahelyett, hogy nulláról kezdené újra a számítást, sok altömb/alkarakterlánc problémát O(n) időben megoldva.
Az ötlet
Bővítsd az ablakot a jobb él mozgatásával; szűkítsd meg a bal él mozgatásával, ha egy feltétel megsérül. Használd újra az előző számítást ahelyett, hogy újraolvasnál.
Példa: a k méretű ablak maximális összege
():
window = (arr[:k])
best = window
i (k, (arr)):
window += arr[i] - arr[i - k]
best = (best, window)
best
max_window_sum([, , , , , ], )
