De sliding-window-techniek handhaaft een aaneengesloten bereik (venster) over een array of string en schuift dit in plaats van opnieuw te berekenen, waardoor veel subarray-/substring-problemen in O(n) worden opgelost.
Het idee
Breid het venster uit door de rechterrand te verplaatsen; krimpit in door de linkerrand te verplaatsen wanneer een beperking wordt geschonden. Hergebruik de vorige berekening in plaats van opnieuw te scannen.
Voorbeeld: maximale som van venster ter grootte k
():
window = (arr[:k])
best = window
i (k, (arr)):
window += arr[i] - arr[i - k]
best = (best, window)
best
max_window_sum([, , , , , ], )
