3
8
2
5
[0][1][2][3]
The hashing idea
▸1// a hash table = O(1) average insert + lookup2set ← {} // membership: "have I seen x?"3for x in arr: set.add(x)4query: x in set // O(1), no re-scan5map ← {} // payload: value → index / count6for i, x in arr: map[x] = i7// average O(1); collisions are the worst case
state
- insertO(1) avg
- lookupO(1) avg
- costextra space