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

Variable Sliding Window (Dynamic Adjustment Based on Conditions) — மாறும் சாளரம்

TT
Testlaa Team
May 14, 20261 min read

மாறும் சாளரம்நிபந்தனை பொறுத்த அகலம்; எ.கா. “அதிகபட்சம் K வெவ்வேறு எழுத்துக்கள்”. செல்லும்வரை R விரி; பின் L சுருக்கி மீண்டும் செல்லும் வரை.

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

தகவமைப்பு bitrate — இடையக சாளரம் அகலம்/இறுக்கம். கடன் வேலை வரலாறு — குறைந்தபட்ச மாதம் நிறைவு சாளரம்.

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

R சேர்; while not valid: a[L] நீக்கு, L+=1. பதில் — அதிகநீளம், எண்ணிக்கை, முதலியன.

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

from collections import Counter


def longest_k_distinct(s: str, k: int) -> int:
    ct, best, L = Counter(), 0, 0
    for R, ch in enumerate(s):
        ct[ch] += 1
        while len(ct) > k:
            ct[s[L]] -= 1
            if ct[s[L]] == 0:
                del ct[s[L]]
            L += 1
        best = max(best, R - L + 1)
    return best


print(longest_k_distinct("eceba", 2))

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

  • L முன்னேறாத while — நிரந்தர வளையம்.
  • L நகர்வில் நிலை மறைப்பு.
  • வெற்று சாளரம்.

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

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

Tags:

Sliding windowPythonமாணவர்கள்