sample input
array = [12, 3, 1, 2, -6, 5, -8, 6]
targetSum = 0
sample output [[-8, 2, 6], [-8, 3, 5], [-6, 1, 5]]
my code is as follows:
def threeNumberSum(array, targetSum):
array.sort()
for i in range(len(array) - 2):
nums = []
firstNum = array[i]
for j in range(i + 1, len(array) - 1):
secondNum = array[j]
for k in range(j + 1, len(array)):
thirdNum = array[k]
potentialTarget = firstNum + secondNum + thirdNum
if potentialTarget == targetSum:
nums.append(firstNum)
nums.append(secondNum)
nums.append(thirdNum)
return [[firstNum, secondNum, thirdNum]]
return []
Kindly suggest me how should I think. Thanks
>Solution :
I think you should place result in a list otherwise you will end the function before finding all possibilities
def threeNumberSum(array, targetSum):
array.sort()
possibilities = []
for i in range(len(array) - 2):
firstNum = array[i]
for j in range(i + 1, len(array) - 1):
secondNum = array[j]
for k in range(j + 1, len(array)):
thirdNum = array[k]
potentialTarget = firstNum + secondNum + thirdNum
if potentialTarget == targetSum:
possibilities.append([firstNum, secondNum, thirdNum])
return possibilities
array = [12, 3, 1, 2, -6, 5, -8, 6]
targetSum = 0
print(threeNumberSum(array,targetSum))
answer
[[-8, 2, 6], [-8, 3, 5], [-6, 1, 5]]