Hajautustaulukko (sanakirja) tarjoaa O(1) keskimäärin hakujen, lisäysten ja poistamisten osalta. Korvaamalla toistuvat haut pikahauilla muutetaan monet O(n²) algoritmit O(n):ksi O(n) muistin hinnalla.
Perustava idea
Sen sijaan, että haettaisiin luetteloa joka kerta, tallenna näkemäsi arvot hajautustaulukkoon ja tarkista jäsenyys vakioajassa.
Esimerkki: two-sum O(n):ssä
():
seen = {}
i, x (nums):
need = target - x
need seen:
(seen[need], i)
seen[x] = i
two_sum([, , , ], )
