அல்கோரிதம்sliding window advanced
Sliding Window Advanced (Variable Conditions, Frequency Maps, Complex Logic) — மேம்பட்ட சாளரம்
TT
Testlaa Team
May 14, 2026•1 min read
மேம்பட்ட சாளரம் — அதிர்வெண் வரைபடம், பல நிபந்தனைகள், சில சமயம் atMost(k)-atMost(k-1) எண்ணிக்கை தந்திரம்.
உண்மை உலகில் இது ஏன் முக்கியம்?
ஸ்பாம் கண்டறிதல் — பல சமிக்ஞைகள் உருளும் உரை. மரபியல் — k-mer, ஐயமுள்ள அடிப்படை.
மையக் கருத்து (மாணவர்களுக்கான விளக்கம்)
atMost(K) உதவி; சரியாக K வேறுபாட்டு வடிவம்; K=0, வெற்று சரம்.
Pythonில் முயற்சி செய்வோம்
from collections import Counter
def at_most_k_distinct(nums: list[int], k: int) -> int:
ct, L, ans = Counter(), 0, 0
for R, x in enumerate(nums):
ct[x] += 1
while len(ct) > k:
y = nums[L]
ct[y] -= 1
if ct[y] == 0:
del ct[y]
L += 1
ans += R - L + 1
return ans
def subarrays_exactly_k_distinct(nums: list[int], k: int) -> int:
return at_most_k_distinct(nums, k) - at_most_k_distinct(nums, k - 1)
print(subarrays_exactly_k_distinct([1, 2, 1, 2, 3], 2))
அடிக்கடி நேரும் தவறுகள்
- atMost கழிப்பு ஒற்றைப் பிழை.
- எண் வெடிப்பு.
முக்கியச் சுருக்கக் குறிப்புகள்
- சரியாக எதிர் அதிகபட்சம் மாற்றம்.
- monotone நிபந்தனை.
Tags:
Sliding windowPythonமாணவர்கள்
