En hash map (ordbog) giver O(1) gennemsnitlig opslag, indsættelse og sletning. Ved at erstatte gentagne søgninger med øjeblikkelig opslag konverteres mange O(n²) algoritmer til O(n) for O(n) hukommelse.
Idéen
I stedet for at søge i en liste hver gang gemmer du sete værdier i en hash map og kontrollerer medlemskab i konstant tid.
Eksempel: two-sum i O(n)
():
seen = {}
i, x (nums):
need = target - x
need seen:
(seen[need], i)
seen[x] = i
two_sum([, , , ], )
