அல்கோரிதம்sliding window two pointer

Sliding Window Two Pointer (Dynamic Expansion and Shrinking) — இரு குறி + சாளரம்

TT
Testlaa Team
May 14, 20261 min read

ஒரே தொடரில் இரு குறிL, R; பெரும்பாலும் L பின்னோக்கி செல்லாது. இது பல வினாக்களை ஒரே குடும்பமாக்கும்.

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

உரை ஒன்றிணைப்பு — இரு குறி; வசன வரி நேரம் — தொடக்க/முடிவு இணை.

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

சமநிலை எழுது: “R முடியும் சிறிய L” எதிர் “Lக்கு பெரிய R”. சரிபார்ப்புக்கு ஏற்றது தேர்வு.

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

def min_subarray_len(target: int, nums: list[int]) -> int:
    s, L, best = 0, 0, len(nums) + 1
    for R, x in enumerate(nums):
        s += x
        while s >= target:
            best = min(best, R - L + 1)
            s -= nums[L]
            L += 1
    return 0 if best > len(nums) else best


print(min_subarray_len(7, [2, 3, 1, 2, 4, 3]))

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

  • இருபுறமும் பின்னோக்கி — பகுப்பாய்வு உடைவு.
  • monotone அல்லாத நிபந்தனை — வேறு கட்டமைப்பு.

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

  • உட்கூறு வினாக்கள் வடிவம் ஒத்தது.
  • L மட்டும் ++ — O(n) நிரூபணம்.

Tags:

Sliding windowPythonமாணவர்கள்