Et hash map (ordbok) gir O(1) gjennomsnittlige oppslag, innsettinger og slettinger. Ved å handle O(n) minne for hastighet omgjøres mange O(n²) algoritmer til O(n) ved å erstatte gjentatte skanninger med øyeblikkelige oppslag.
Ideen
Istedenfor å søke i en liste hver gang, lagrer du verdier du har sett i et hash map og sjekker medlemskap på 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([, , , ], )
