# Two Sum Problem
<https://leetcode.com/problems/two-sum/>
- Solution 1 - brute force
- Solution 2 - hash table
- Maintain a dictionary of `num: index`
- Calculate the **complement** of the current number
- Find the complement in the dictionary
- Solution 3 - with [[2-pointer|two pointer]].
```python
n = len(nums)
num_map = {}
for i in range(n):
complement = target - nums[i]
if complement in num_map:
return (num_map[complement])
num_map[nums[i] = i]
return None
```