Competitive Programming Academy · Les

Twee pointers in een gesorteerde array

De uiteinden naar binnen bewegen tot u een doel bereikt

Les 1 van 413 stappen

Twee pointers in een gesorteerde array is een gratis Competitive Programming Academy-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 Competitive Programming Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Competitive Programming Academy bevat in totaal 4 lessen.

Waarom twee pointers

De techniek met twee pointers doorloopt een array met twee indices in plaats van geneste lussen. Daardoor worden veel ideeën met O(n^2) omgezet in één overzichtelijke doorgang van O(n). 🎯

Gesorteerd is het sleutelwoord

De klassieke versie heeft een gesorteerde array nodig. Door de volgorde kun je redeneren: naar rechts gaan vergroot de waarde, naar links gaan verkleint die, dus elke stap is een echte beslissing.

Twee pointers aan de uiteinden

Begin met één pointer aan het linkeruiteinde en één aan het rechteruiteinde. Ze wijzen naar elkaar toe en zullen de afstand ertussen langzaam verkleinen.

left = 0
right = len(a) - 1

Beweeg de uiteinden naar binnen

Bij elke stap verplaats je precies één pointer naar binnen. De volgorde van de array vertelt je welke kant je moet verschuiven om dichter bij je doel te komen.

De lusvoorwaarde

Blijf lussen zolang left < right. Wanneer ze elkaar raken of kruisen, is elk nuttig paar gecontroleerd en kun je stoppen.

while left < right:
    # inspect a[left] and a[right]
    pass

De huidige som lezen

Bekijk a[left] + a[right] als je huidige kandidaat. Door die met een doelwaarde te vergelijken, weet je of je daarna een grotere of kleinere waarde nodig hebt.

total = a[left] + a[right]

Te klein: verplaats links

Als de som kleiner is dan de doelwaarde, heb je meer nodig. Verplaats de linkerpointer naar rechts, in de richting van grotere waarden, omdat de array oplopend gesorteerd is.

if total < target:
    left += 1

Te groot: verplaats rechts

Als de som groter is dan de doelwaarde, heb je minder nodig. Verplaats de rechterpointer naar links, in de richting van kleinere waarden, om het totaal te verlagen.

elif total > target:
    right -= 1

Elke stap gooit werk weg

Elke verplaatsing elimineert een hele groep paren die je nooit hoeft te testen. Daarom is de doorloop lineair in plaats van kwadratisch.

Waarom het correct blijft

Je verwerpt alleen paren die niet kunnen overeenkomen, dus het juiste antwoord wordt nooit overgeslagen. Daardoor zijn twee pointers betrouwbaar bij programmeerwedstrijden.

Verder dan de uiteinden

Hetzelfde idee vormt de basis voor varianten: ter plekke omkeren, partitioneren en samenvoegen. Als je de pointers naar elkaar toe leert bewegen, voelen al deze toepassingen vertrouwd.

Korte controle

Je doorloopt een gesorteerde array vanaf beide uiteinden op zoek naar een doelsom.

Samenvatting

Met twee pointers doorloop je een gesorteerde array vanaf beide uiteinden en verplaats je bij elke stap één pointer naar binnen zolang left < right. Lineair, correct en de basis voor veel trucs. 🚀

Gratis beginnen

Leer Python 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
30
Lessen
120

Veelgestelde vragen

Is de les “Twee pointers in een gesorteerde array” gratis?

Ja — de volledige tekst van “Twee pointers in een gesorteerde array” 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 Competitive Programming Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Competitive Programming Academy bevat in totaal 4 lessen.

Wat leer ik in “Twee pointers in een gesorteerde array”?

De uiteinden naar binnen bewegen tot u een doel bereikt Je oefent met Competitive Programming Academy 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 Competitive Programming Academy te beginnen?

Ervaring vooraf is niet nodig. Competitive Programming Academy 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 “Twee pointers in een gesorteerde array”?

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 Competitive Programming Academy?

Ja. Elke les over Competitive Programming Academy 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. Twee pointers in een gesorteerde array
  2. Een paar met een gegeven som vinden
  3. Duplicaten ter plaatse verwijderen
  4. Twee gesorteerde reeksen samenvoegen
← Terug naar Competitive Programming Academy