Skip to main content
AI EducademyAIEducademy
🌳

AI-Fundamenten

🌱
AI Seeds

AI-geletterdheid voor de echte wereld

🌿
AI Sprouts

De fundamenten achter intelligente systemen

🌳
AI Branches

Bouw met de huidige AI-mogelijkheden

🏕️
AI Canopy

Ontwikkel betrouwbare GenAI-systemen

🌲
AI Forest

Verstuur AI-producten op verantwoorde wijze

🔨

AI-Meesterschap

✏️
AI Sketch

Technische basis voor AI-bouwers

🪨
AI Chisel

Patronen voor het oplossen van moeilijkere problemen

⚒️
AI Craft

Ontwerp systemen die AI schalen

💎
AI Polish

Communiceer en geef leiding in het AI-tijdperk

🏆
AI Masterpiece

Het sluitstuk van uw productie-AI

🚀

Carrière Klaar

🚀
Interview Startplatform

Navigeer door de AI-engineering-banenmarkt

🌟
Gedragsinterview Meesterschap

Vertel het verhaal over hoe jij impact creëert

💻
Technische Interviews

Oplossen, ontwerpen en communiceren onder druk

🤖
AI- & ML-interviews

Bereid je voor op moderne ML- en GenAI-interviews

🏆
Aanbod & verder

Maak een zelfverzekerde, geïnformeerde volgende stap

Alle programma's bekijken→

Laboratorium

7 experimenten geladen
🧠Neuraal netwerk speeltuin🤖AI of mens?💬Prompt-lab🎨Beeldgenerator😊Sentimentanalyse💡Chatbot bouwer⚖️Ethiek simulator
🎯Proef-sollicitatieGa het laboratorium binnen→
TrajectBloggen
🎯
Over ons

AI-onderwijs toegankelijk maken voor iedereen, overal

❓
Veelgestelde vragen

Veelgestelde vragen beantwoord

🧰
AI-tools

Zorgvuldig gekozen tools die we gebruiken en aanraden

✉️
Contacteer

Neem contact met ons op

⭐
Open source

Openbaar gebouwd op GitHub

Prijzen
Begin met leren
AI EducademyAIEducademy

© 2026 AI Educademy. Alle rechten voorbehouden.

Leren

  • Opleidingen
  • Lessen
  • Laboratorium
  • AI-starterskit
  • Prijzen

Gemeenschap

  • GitHub
  • Bijdragen
  • Gedragscode
  • Over ons
  • Veelgestelde vragen

Ondersteuning

  • Koop een koffie voor me ☕
  • Servicevoorwaarden
  • Privacybeleid
  • Contacteer
  • Sitemap
AI & Engineering Opleidingen›🪨 AI Chisel›Lessen›Two Pointers en Sliding Window - Hoe AI data efficiënt scant
👆
AI Chisel • Gemiddeld⏱️ 15 min leestijd

Two Pointers en Sliding Window - Hoe AI data efficiënt scant

Waarom slim scannen belangrijk is

Stel je een AI voor die een live videofeed bewaakt op verdachte activiteit. Het kan niet elke seconde de hele opname opnieuw bekijken - het moet een aandachtsvenster over de stream schuiven, met net genoeg context. Dat is precies wat de two pointers en sliding window patronen doen voor sequentiële data.

Beide technieken veranderen brute-force O(n²) scans in elegante O(n) doorlopen.

Two pointers die van beide uiteinden van een array convergeren en een sliding window die over een datastroom beweegt
Two pointers verkleinen de zoekruimte; een sliding window houdt een doorlopend overzicht bij.

De Two Pointer techniek

Plaats twee referenties in een reeks en verplaats ze volgens een regel. Er zijn twee hoofdvarianten.

Convergerende pointers

Begin met één pointer aan elk uiteinde en beweeg ze naar binnen. Ideaal voor gesorteerde data.

Klassiek probleem - Pair Sum: Gegeven een gesorteerde array, vind twee getallen die optellen tot een doel.

function pairSum(arr, target):
    left = 0
    right = arr.length - 1
    while left < right:
        sum = arr[left] + arr[right]
        if sum == target: return (left, right)
        if sum < target: left += 1
        else: right -= 1
    return null

Omdat de array gesorteerd is, verhoogt het verplaatsen van left naar rechts de som, en verlaagt het verplaatsen van right naar links de som - waardoor geen enkel geldig paar wordt gemist.

Pointers in dezelfde richting

Beide pointers bewegen vooruit, maar met verschillende snelheden. Handig voor partitionering of cyclusdetectie.

Voorbeeld - Duplicaten in-place verwijderen: Een langzame pointer markeert de schrijfpositie; een snelle pointer scant vooruit.

function removeDuplicates(arr):
    slow = 0
    for fast in 1..arr.length - 1:
        if arr[fast] != arr[slow]:
            slow += 1
            arr[slow] = arr[fast]
    return slow + 1
🧠Snelle check

Wat moet je bij de convergerende two-pointer techniek op een gesorteerde array doen wanneer de huidige som kleiner is dan het doel?

Les 1 van 100% voltooid
←Terug naar programma
Verdergaan: Trees en binair zoeken - Hoe AI snelle beslissingen neemt→

Discussie

Meld je aan om deel te nemen aan de discussie

Stel een wijziging voor deze les voor

Het Sliding Window patroon

Een sliding window houdt een aaneengesloten deelreeks bij van grootte k (vast) of variabele lengte, en werkt aggregaten incrementeel bij in plaats van helemaal opnieuw te berekenen.

Vast-formaat window

Schuif een window van precies k elementen over de array.

Voorbeeld - Maximale som van k opeenvolgende elementen:

function maxSubarraySum(arr, k):
    windowSum = sum(arr[0..k-1])
    best = windowSum
    for i in k..arr.length - 1:
        windowSum += arr[i] - arr[i - k]
        best = max(best, windowSum)
    return best

Elke stap voegt het nieuwe element toe dat het window binnenkomt en trekt het element af dat vertrekt - O(1) per verplaatsing.

Variabel-formaat window

Breid het window uit om meer data op te nemen, en krimp het weer wanneer een beperking wordt geschonden.

Voorbeeld - Langste substring zonder herhalende karakters:

function longestUnique(s):
    seen = {}
    left = 0
    best = 0
    for right in 0..s.length - 1:
        if s[right] in seen and seen[s[right]] >= left:
            left = seen[s[right]] + 1
        seen[s[right]] = right
        best = max(best, right - left + 1)
    return best
🤯
Streaming analytics platformen zoals Apache Flink gebruiken sliding en tumbling windows als eersteklas primitieven - hetzelfde concept opgeschaald naar miljoenen events per seconde.

Toepassingen in AI

| Patroon | AI-toepassing | |---------|--------------| | Vast window | Anomaliedetectie over de laatste k sensormetingen | | Variabel window | De kortste tekstspanne vinden die alle zoekwoorden bevat (zoekmachines) | | Convergerende pointers | Efficiënte nearest-neighbour controles in gesorteerde embedding-dimensies | | Dezelfde-richting pointers | Samenvoegen van gesorteerde resultaatlijsten van meerdere retrieval-modellen |

🤔
Think about it:Een spraakassistent buffert de laatste 3 seconden audio om een wake word te detecteren. Welk patroon is dit - vast window of variabel window? Wat gebeurt er als het wake word langer is dan de buffer?

Wanneer welk patroon gebruiken

  • Two pointers (convergerend): gesorteerde invoer, paar-/drietalzoekopdrachten, palindroomcontroles.
  • Two pointers (dezelfde richting): in-place aanpassingen, fast/slow runner problemen.
  • Vast sliding window: aggregaat over een bekende venstergrootte.
  • Variabel sliding window: de kleinste of grootste window vinden die aan een voorwaarde voldoet.
🧠Snelle check

Welk patroon zou je kiezen om de kleinste subarray te vinden waarvan de som een gegeven waarde overschrijdt?

🤔
Think about it:Zou je two pointers met een sliding window kunnen combineren? Denk aan problemen waarbij je een paar moet vinden binnen een rollend datavenster - bijvoorbeeld het detecteren van dubbele transacties binnen een venster van vijf minuten.

Belangrijkste inzichten

  1. Two pointers elimineren geneste lussen door gebruik te maken van ordening of partitionering.
  2. Sliding windows behouden een lopende staat zodat elk element maximaal twee keer wordt verwerkt.
  3. Beide patronen zijn fundamenteel in real-time AI-pipelines - van anomaliedetectie tot zoekrangschikking.
🧠Snelle check

Wat is de typische tijdscomplexiteit die wordt bereikt door een brute-force geneste lus om te zetten naar een two-pointer of sliding-window oplossing?