En hash-tabell (dictionary) ger O(1) i genomsnitt för sökningar, infogningar och borttagningar. Genom att byta O(n) minne mot hastighet omvandlas många O(n²)-algoritmer till O(n) genom att ersätta upprepade genomsökningar med direkta uppslagningar.
Grundidén
Istället för att söka igenom en lista varje gång lagrar du värden du sett i en hash-tabell och kontrollerar medlemskap på konstant tid.
Exempel: två-sum i O(n)
():
seen = {}
i, x (nums):
need = target - x
need seen:
(seen[need], i)
seen[x] = i
two_sum([, , , ], )
