-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsolution.py
25 lines (16 loc) · 862 Bytes
/
solution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Write a function that takes an array of numbers (integers for the tests) and a target number.
# It should find two different items in the array that, when added together, give the target value.
# The indices of these items should then be returned in a tuple like so: (index1, index2).
# For the purposes of this kata, some tests may have multiple answers; any valid solutions will be accepted.
# The input will always be valid (numbers will be an array of length 2 or greater,
# and all of the items will be numbers; target will always be the sum of two different items from that array).
# Based on: http://oj.leetcode.com/problems/two-sum/
# twoSum [1, 2, 3] 4 === (0, 2)
def two_sum(numbers, target):
r = {}
for i, v in enumerate(numbers):
x = target - v
if x in r:
return [r[x], i]
r[v] = i
return r