Een hash map (woordenboek) geeft O(1) gemiddelde opzoekingen, invoegingen en verwijderingen. Door O(n) geheugen voor snelheid in te ruilen, worden veel O(n²) algoritmen in O(n) omgezet door herhaalde scans te vervangen door directe opzoekingen.
Het idee
In plaats van elke keer een lijst te doorzoeken, sla je geziene waarden op in een hash map en controleer je lidmaatschap in constante tijd.
Voorbeeld: two-sum in O(n)
():
seen = {}
i, x (nums):
need = target - x
need seen:
(seen[need], i)
seen[x] = i
two_sum([, , , ], )
