Een prefixsomarray bouwen
Lopende totalen één keer vooraf berekenen
Een prefixsomarray bouwen 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
Stel je voor dat je honderden vragen over sommen van bereiken op één array moet beantwoorden. Elk bereik vanaf nul optellen is traag. Een prefixsom lost dat op. 🚀
Wat een prefixsom is
Een array met prefixsommen bewaart op elke index het totaal van alle elementen tot en met die positie. Eén voorbereidende doorgang verandert trage sommen in directe antwoorden.
Een klein voorbeeld
Voor [3, 1, 4] zijn de oplopende totalen 3, daarna 4 en daarna 8. Die groeiende lijst met totalen is precies je prefixsom.
De basisrecursie
Elke waarde is het vorige totaal plus het huidige element. Deze eenregelige recursie vormt de kern van de hele techniek.
prefix[i] = prefix[i - 1] + a[i]Bouw hem in code
Doorloop de array één keer en houd een oplopend totaal bij. Voeg bij elke stap de nieuwe som toe, zodat het opbouwen van de array één enkele lineaire doorgang is.
prefix = [0]
for x in a:
prefix.append(prefix[-1] + x)Waarom een voorloopnul helpt
Als je prefix met een voorloop-nul begint, bevat prefix[i] de som van de eerste i elementen. Daardoor wordt rekenen met bereiken later eenvoudig.
Indexeringsconventie
Met de nul vooraan is prefix[k] gelijk aan a[0] + ... + a[k-1]. Als je deze conventie goed toepast, voorkom je pijnlijke fouten waarbij je één positie te ver zit.
Kosten van het opbouwen
Bij het opbouwen van de prefixarray raak je elk element precies één keer aan, dus het kost O(n)-tijd. Je betaalt die kosten één keer en gebruikt het resultaat daarna steeds opnieuw.
Eén keer voorberekenen, vaak opvragen
De grote winst is de afweging: besteed vooraf één lineaire doorgang, zodat elke latere somvraag een snelle opzoekactie wordt in plaats van een lus.
Een Pythonse snelkoppeling
De standaardbibliotheek kan de totalen voor je opbouwen. itertools.accumulate levert de oplopende sommen in één overzichtelijke aanroep.
from itertools import accumulate
prefix = [0] + list(accumulate(a))Let op het geheugen
De prefixarray heeft dezelfde lengte als je invoer plus één. Houd er bij enorme invoer rekening mee dat dit je geheugengebruik verdubbelt.
Korte controle
Je bouwt een prefixarray. Wat bevat index 0 meestal?
Samenvatting
Je hebt geleerd hoe je in één doorgang van O(n) een array met prefixsommen opbouwt, met een voorloopnul voor eenvoudige indexering. Bereken het één keer vooraf en gebruik het daarna opnieuw. ✅
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 “Een prefixsomarray bouwen” gratis?
Ja — de volledige tekst van “Een prefixsomarray bouwen” 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 “Een prefixsomarray bouwen”?
Lopende totalen één keer vooraf berekenen 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 “Een prefixsomarray bouwen”?
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
- Een prefixsomarray bouwen
- Elk bereik optellen met aftrekken
- Subarrays met een doelsom tellen
- Verschilarrays voor bereikupdates