Skip to content
Review the AI

Two Sum

The classic interview question, three answers. One has a subtle bug that only shows on some inputs. Label them.

Problem

two_sum(values, key): return the indices of two different elements that add up to key. There is exactly one answer.

Solution A

1def two_sum(values, key):
2 seen = {}
3 for i, v in enumerate(values):
4 seen[v] = i
5 if key - v in seen:
6 return [seen[key - v], i]

Solution B

1def two_sum(values, key):
2 for i in range(len(values)):
3 for j in range(i + 1, len(values)):
4 if values[i] + values[j] == key:
5 return [i, j]

Solution C

1def two_sum(values, key):
2 seen = {}
3 for i, v in enumerate(values):
4 if key - v in seen:
5 return [seen[key - v], i]
6 seen[v] = i