✍️ پنجره یعنی یک تکه پیوسته از ورودی؛ پیوسته بودن اجازه پرش از روی اعضا را نمیدهد. اگر طول پنجره سه باشد، در [2, 7, 1, 4] فقط دو پنجره داریم: [2,7,1] و [7,1,4]. انتخاب [2,1,4] پنجره نیست، چون هفت را جا انداخته است. طول ثابت هم یعنی همه پنجرهها دقیقاً همان تعداد عضو را دارند.
برای جمع پنجرهها میشود هر بار از ابتدا جمع زد، ولی دو پنجره همسایه بیشتر اعضایشان مشترک است. جمع اول ده است؛ برای رفتن به پنجره دوم، دو خارج و چهار وارد میشود، پس جمع تازه دوازده خواهد بود. به این نگه داشتن و بهروز کردن وضعیت، پنجره لغزان میگیم.
current = 2 + 7 + 1
current = current - 2 + 4
print(current) # 12
هنوز لازم نیست طول متغیر یا شرطهای پیچیده را یاد بگیریم. این بخش فقط طول ثابت دارد و ابتدا قرارداد طول معتبر را روشن میکند. خطای رایج، اشتباه گرفتن پنجره با زیرمجموعه دلخواه یا فراموش کردن عضو خروجی است. هر جابهجایی دقیقاً یک خروج و یک ورود دارد؛ همین توازن اندازه پنجره را ثابت نگه میدارد.
فعالیت شما
تفاوت پنجره پیوسته و انتخاب دلخواه را توضیح بده؛ در مثال طول 3، فقط دو پنجره مجاز و جمعهای 10 و 12 وجود دارند. این گام خواندنی است.