Если вам дан список
numList = [1,2,3,4,5,6,7]
и вас попросят найти число из трех сумм, добавляемых к определенному номеру
target = 10
Как ты мог придумать ответ?
Например, комбинация: [1,3,6], [1,2,7], [2,3,5], [1,4,5]
приведет к возвращаемому значению 4
.
Я знаю, как использовать функцию, основанную на хешировании, чтобы придумать одну три сумму для решения, используя приведенный ниже код, но я не уверен, как добавить все уникальные три суммы решений.
def find3Numbers(A,arr_size,sum):
for i in range(0,arr_size-1):
#Find pair in subarray A[i+1..n-1]
# with sum equal to sum - A[i]
s = set()
curr_sum = sum - A[i]
for j in range(i+1,arr_size):
if (curr_sum - A[j]) in s:
print("Triplet is", A[i],
", ", A[j], ", ", curr_sum-A[j])
return True
s.add(A[j])
return False