அல்கோரிதம்window boundary update

Window Boundary Update — எல்லை புதுப்பிப்பு

TT
Testlaa Team
May 14, 20261 min read

எல்லை புதுப்பிப்புR வரும் உறுப்பு +, L செல்லும் உறுப்பு -; எல்லை தாவல் போது சோம்பேறி புதுப்பிப்பு.

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

கிடங்கு வாசல் — இடது வண்டி வெளியேறு, வலது புதியது; ஆவணம் எல்லை புதுப்பிப்பு.

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

add(a[R]); while bad: remove(a[L]); L++. தாவல் — இடைப்பட்ட indexகள் நீக்கம் சில சமயம் தவிர்க்கலாம் — நிரூபணத்துடன்.

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

def apply_boundary_ops(s: str) -> int:
    freq, L, uniq = {}, 0, 0

    def add(ch):
        nonlocal uniq
        freq[ch] = freq.get(ch, 0) + 1
        if freq[ch] == 1:
            uniq += 1

    def remove(ch):
        nonlocal uniq
        freq[ch] -= 1
        if freq[ch] == 0:
            uniq -= 1

    best = 0
    for R, ch in enumerate(s):
        add(ch)
        while uniq > 2:
            remove(s[L])
            L += 1
        best = max(best, R - L + 1)
    return best


print(apply_boundary_ops("ccaabbb"))

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

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

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

  • add/remove சமச்சீர் API — சோதனை எளிது.

Tags:

Sliding windowPythonமாணவர்கள்