Hash mapa (slovník) poskytuje O(1) průměr pro vyhledávání, vkládání a mazání. Nahrazením opakovaných vyhledávání okamžitým vyhledáváním se převádí mnoho O(n²) algoritmů na O(n) za cenu O(n) paměti.
Hlavní myšlenka
Místo hledání v seznamu pokaždé uložte viděné hodnoty do hash mapy a zkontrolujte příslušnost v konstantním čase.
Příklad: two-sum v O(n)
():
seen = {}
i, x (nums):
need = target - x
need seen:
(seen[need], i)
seen[x] = i
two_sum([, , , ], )
