A hash térkép (dictionary) O(1) átlagos keresést, beszúrást és törlést biztosít. Az O(n) memória sebességért való cseréje sok O(n²) algoritmust O(n) algoritmusá alakít a többszöri vizsgálatok helyettesítésével azonnali keresésekkel.
Az ötlet
Ahelyett, hogy minden alkalommal listában keresne, tárolt értékeket tároljunk egy hash térképben és az állandó időben ellenőrizze a tagsági viszonyokat.
Példa: két szám összege O(n)-ben
():
seen = {}
i, x (nums):
need = target - x
need seen:
(seen[need], i)
seen[x] = i
two_sum([, , , ], )
