સ્લાઈડિંગ-વિન્ડો તકનીક એક કન્ટીજુઅસ રેન્જ (વિન્ડો) ને એરે અથવા સ્ટ્રિંગ પર જાળવી રાખે છે અને તેને સ્લાઈડ કરે છે બદલે કે શરૂ થી ફરીથી કમ્પ્યુટ કરવાથી, ઘણી subarray/substring સમસ્યાઓ ને O(n) માં હલ કરે છે.
આ વિચાર
રાઇટ એજ ને આગળ ખસેડીને વિન્ડો વધારો; જ્યારે કોઈ constraint ની ક્ષતિ થાય ત્યારે લેફ્ટ એજ ને આગળ ખસેડીને તેને સંકુચિત કરો. ફરીથી સ્કેન કરવાથી બદલે પાછલી computation ને ફરીથી ઉપયોગ કરો.
ઉદાહરણ: સાઈজ k ની કોઈ પણ વિન્ડોનો મહત્તમ સરવાળો
():
window = (arr[:k])
best = window
i (k, (arr)):
window += arr[i] - arr[i - k]
best = (best, window)
best
max_window_sum([, , , , , ], )
