sliding-window কৌশল একটি অ্যারে বা স্ট্রিংয়ের উপর একটি সংলগ্ন পরিসীমা (উইন্ডো) বজায় রাখে এবং এটি স্লাইড করে, শুরু থেকে পুনরায় গণনা করার পরিবর্তে, অনেক সাব্যারে/সাবস্ট্রিং সমস্যা O(n) এ সমাধান করে।
ধারণা
ডান প্রান্তটি সরিয়ে উইন্ডোটি প্রসারিত করুন; যখন কোনো সীমাবদ্ধতা লঙ্ঘিত হয় তখন বাম প্রান্তটি সরিয়ে এটি সংকুচিত করুন। পুনরায় স্ক্যান করার পরিবর্তে পূর্ববর্তী গণনা পুনরায় ব্যবহার করুন।
উদাহরণ: আকার k এর যেকোনো উইন্ডোর সর্বাধিক যোগফল
():
window = (arr[:k])
best = window
i (k, (arr)):
window += arr[i] - arr[i - k]
best = (best, window)
best
max_window_sum([, , , , , ], )
