அல்கோரிதம்overview

Sliding Window (Efficiently Processing Continuous Subarrays and Substrings) — நகரும் சாளரம் — தொடர் உட்கூறுகள்

TT
Testlaa Team
May 14, 20261 min read

நகரும் சாளரம் (sliding window) — தொடர்ச்சி [இடது, வலது] பகுதி; ஒவ்வொரு நகர்விலும் கூட்டல்/எண்ணிக்கை போன்றவற்றை மீண்டும் முழு ஸ்கேன் செய்யாமல் O(1) அல்லது O(n) மொத்தத்தில் பராமரிக்கும் நுட்பம்.

உண்மை உலகில் இது ஏன் முக்கியம்?

பிணைய போக்கு — நகரும் சராசரி/சாளரம். வீடியோ இடையகம் — கடைசி N பிரேம். கடந்த 7 நாள் விற்பனை — தேதி சாளரம். DNA motif — k-mer நகர்வு. ஒழுங்கான தரவில் அண்டைப்பகுதி.

மையக் கருத்து (மாணவர்களுக்கான விளக்கம்)

L, R என இரண்டு index. R விரிவு; சாளரம் செல்லாதது அல்லது சிறந்த பதில் தேடும்போது L சுருக்கு. நகர்வில் படிப்படியாக மொத்தம் புதுப்பி (கூட்டல், Counter). இருபுறமும் ஒரே நேரம் மீட்டமைப்பு அரிது.

Pythonில் முயற்சி செய்வோம்

def max_sum_subarray_k(nums: list[int], k: int) -> int:
    if k <= 0 or k > len(nums):
        return 0
    s = sum(nums[:k])
    best = s
    for i in range(k, len(nums)):
        s += nums[i] - nums[i - k]
        best = max(best, s)
    return best


print(max_sum_subarray_k([2, 1, 5, 1, 3, 2], 3))

அடிக்கடி நேரும் தவறுகள்

  • R நகர்த்தி நிலை புதுப்பிக்காமல் L — இரட்டிப்பு பிழை.
  • வெற்று சாளரம் எல்லை.
  • சமமான இரு குறி சந்திப்புடன் குழப்பம்.

முக்கியச் சுருக்கக் குறிப்புகள்

  • சாளரம் = இடைவெளி + படிப்படி நிலை.
  • [L,R] அடைப்பு வரைபு.
  • நிலையான நீளம் எதிர் செல்லுநிலை?

Tags:

Sliding windowPythonமாணவர்கள்