Two Sum (coding challenge -02)
Task
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 / list (depending on your language) 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; the target will always be the sum of two different items from that array).
Explanation
First I made a loop that will iterate through all the elements of the array
for(let i = 0; i<numbers.length; i++)
Inside this loop, I used another loop that will iterate through all the elements after the one being iterated in the last loop.
for(let j = i+1; j<numbers.length; j++)
In each iteration I'll check if the sum of the element iterated in the first loop (i) plus the one being iterated in the last loop (j) is equal to the target, it'll return their positions
let complement = numbers[i] + numbers[j]
if(complement == target) return [i,j]
so the final solution is -
function twoSum(numbers, target) {
for(let i = 0; i<numbers.length; i++){
for(let j = i+1; j<numbers.length; j++){
let complement = numbers[i] + numbers[j]
if(complement == target) return [i,j]
}
}
}