Two Sum
Use a hash map to remember each value's index. For every new value, check if its complement (target - value) was already seen.
def twoSum(nums, target):
seen = {}
for i, n in enumerate(nums):
d = target - n
if d in seen:
return [seen[d], i]
seen[n] = i
Time O(n) | Space O(n)