Voorbereiding op programmeerinterviews · Les

Sommen van vensters met vaste grootte

Een venster met lengte k in O(n) verschuiven

Les 1 van 413 stappen

Sommen van vensters met vaste grootte is een gratis Voorbereiding op programmeerinterviews-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Voorbereiding op programmeerinterviews. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Voorbereiding op programmeerinterviews bevat in totaal 4 lessen.

Het probleem van herhaalde sommen

Veel taken vragen om de som van elk blok van k opeenvolgende elementen. Elk blok opnieuw vanaf nul berekenen is verspilling, en het kan efficiënter. 🪟

Eerst de trage aanpak

Het naïeve idee telt elk venster van lengte k afzonderlijk op. Daardoor doe je werk steeds opnieuw en kost het O(n maal k), wat te traag is voor grote invoer.

for i in range(n - k + 1):
    s = sum(a[i:i + k])

Het kerninzicht

Omliggende vensters overlappen bijna volledig. Als je één stap naar rechts gaat, verwijder je alleen het meest linkse element en voeg je rechts één nieuw element toe.

Initialiseer het eerste venster

Begin door de eerste k elementen één keer op te tellen. Deze ene som vormt de basis die je blijft bijwerken terwijl het venster vooruit schuift.

window = sum(a[:k])
best = window

Schuif één stap

Tel het binnenkomende element op en trek het vertrekkende element af. Zo blijft elke stap beperkt tot een constante hoeveelheid werk van O(1).

for i in range(k, n):
    window += a[i] - a[i - k]

Houd je antwoord bij

Werk na elke verschuiving bij wat je nodig hebt, bijvoorbeeld de maximumsom van een venster die je tot nu toe hebt gezien. De waarde van het venster is altijd direct beschikbaar.

    best = max(best, window)

De totale kosten zijn lineair

Je raakt elk element één keer aan om het op te tellen en nog één keer om het te verwijderen, dus de volledige doorloop is O(n). Daarmee voldoe je gemakkelijk aan grote invoergrenzen.

Let op de indices

Het element dat het venster verlaat is a[i - k], niet a[i - 1]. Deze verschuiving goed instellen is de meest voorkomende fout bij vaste vensters.

Gemiddelden krijg je erbij

Heb je het grootste gemiddelde van een venster nodig in plaats van de som? Deel de bijgehouden venstersom gewoon door k. De schuiflogica verandert helemaal niet.

avg = window / k

Verwerk kleine arrays

Als de array korter is dan k, bestaat er geen volledig venster. Vergelijk vooraf len(a) met k en geef meteen een resultaat terug om een indexfout te voorkomen.

if n < k:
    return None

Wanneer vaste vensters geschikt zijn

Gebruik dit patroon wanneer de lengte vaststaat en je waarden goedkoop combineert, zoals bij sommen, tellingen of eenvoudige lopende statistieken.

Snelle controle

Je schuift een venster met grootte k in één stap naar rechts door een array.

Samenvatting

Initialiseer het eerste venster één keer en tel op en trek af bij elke stap om het in O(1) te verschuiven. De volledige doorloop met vaste grootte werkt in lineaire tijd. ✅

Gratis beginnen

Leer Voorbereiding op programmeerinterviews met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
90
Lessen
360

Veelgestelde vragen

Is de les “Sommen van vensters met vaste grootte” gratis?

Ja — de volledige tekst van “Sommen van vensters met vaste grootte” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Voorbereiding op programmeerinterviews wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Voorbereiding op programmeerinterviews bevat in totaal 4 lessen.

Wat leer ik in “Sommen van vensters met vaste grootte”?

Een venster met lengte k in O(n) verschuiven Je oefent met Voorbereiding op programmeerinterviews door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Voorbereiding op programmeerinterviews te beginnen?

Ervaring vooraf is niet nodig. Voorbereiding op programmeerinterviews op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Sommen van vensters met vaste grootte”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Voorbereiding op programmeerinterviews?

Ja. Elke les over Voorbereiding op programmeerinterviews bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Sommen van vensters met vaste grootte
  2. Variabel venster met twee pointers
  3. Langste substring zonder herhalingen
  4. Vensters tellen die aan een regel voldoen
← Terug naar Voorbereiding op programmeerinterviews