அல்கோரிதம்advanced sliding window

Advanced Sliding Window Technique — நிபுண சாளர நுட்பம்

TT
Testlaa Team
May 14, 20261 min read

நிபுண நிலை — பல deque, அரிதாக சாளரத்தில் segment tree, இரண்டு அணிகள் இருபக்க எண்ணிக்கை — மேம்பாட்டிற்கு முன் சமநிலை தெளிவு.

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

பல உணர் ஒருங்கிணைப்பு — ஒவ்வொன்றிற்கும் சாளரம் பின் ஒன்றிணைப்பு. போட்டி — தந்திரங்கள்; உற்பத்தி — எளிய நிரூபிக்கப்பட்ட கட்டமைப்பு.

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

சிக்கலான தேவைகளை நிலையான கூறுகளாக பிரி (monotonic deque, prefix, lazy). பிரிக்க முடியாவிட்டால் — தூய சாளரம் அல்லாமல் இருக்கலாம்.

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

# Sketch: maintain window sum + sorted structure via ``bisect`` (educational)
import bisect

def window_median(nums: list[int], k: int) -> list[float]:
    window = sorted(nums[:k])
    out = []
    for i in range(k, len(nums) + 1):
        mid = k // 2
        med = window[mid] if k % 2 else (window[mid - 1] + window[mid]) / 2
        out.append(med)
        if i == len(nums):
            break
        bisect.insort(window, nums[i])
        window.pop(bisect.bisect_left(window, nums[i - k]))
    return out


print(window_median([1, 3, -1], 2))

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

  • இரு குறி போதுமானபோது மேம்பாடு.
  • பல சாளரங்கள் — நிலை உரிமை குழப்பம்.

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

  • முதலில் முழு வலு; தொண்டு பகுதி; பின் மேம்பாடு.
  • சமநிலை ஆவணம்.

Tags:

Sliding windowPythonமாணவர்கள்