-
Notifications
You must be signed in to change notification settings - Fork 3
/
add_to_k.py
26 lines (22 loc) · 836 Bytes
/
add_to_k.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
26
#Given a list of numbers and a number k, return whether any two numbers from the list add up to k.
#For example, given [10, 15, 3, 7] and k of 17, return true since 10 + 7 is 17.
# Brute force: loop through the list N times and add up all the numbers
def add_to_k(numbers, k):
for i in range(len(numbers) - 1):
current = numbers[i]
for j in range(i + 1, len(numbers)):
# print("checking", current, "+", numbers[j])
if current + numbers[j] == k:
return True
return False
def add_to_k_recursive(numbers, k):
if (len(numbers) < 2):
return False
elif numbers[0] + numbers[-1] == k:
return True
else:
return add_to_k_recursive(numbers[:-1], k) or add_to_k_recursive(numbers[1:], k)
num_list = [10, 15, 3, 7]
k = 10
print(add_to_k(num_list, k))
print(add_to_k_recursive(num_list, k))