Hash map (słownik) oferuje O(1) średnio dla operacji wyszukiwania, wstawiania i usuwania. Wymiana O(n) pamięci na szybkość zamienia wiele algorytmów O(n²) na O(n), zastępując powtarzane skanowania natychmiastowymi wyszukiwaniami.
Idea
Zamiast przeszukiwać listę za każdym razem, przechowuj wartości, które widziałeś w hash mapie i sprawdzaj członkowstwo w stałym czasie.
Przykład: two-sum w O(n)
():
seen = {}
i, x (nums):
need = target - x
need seen:
(seen[need], i)
seen[x] = i
two_sum([, , , ], )
