Code Wars: Two Sum

https://www.codewars.com/kata/two-sum/javascript

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 an array 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).

BEST PRACTICE SOLUTION (more efficient for loop- not repeating sums):
function twoSum(numbers, target) { for (var i = 0; i < numbers.length-1; i++) { for (var j = i+1; j < numbers.length; j++) { if (numbers[i] + numbers[j] === target) return [i, j]; } } }

My solution:
function twoSum(numbers, target) {
  let indexArr = [];
 
  for (let i = 0; i < numbers.length; i++) {
    for (let j = 0; j < numbers.length; j++) {
      if (j !== i && numbers[i] + numbers[j] === target && indexArr.length < 2) {
        indexArr.push(i);
        indexArr.push(j);
      }
    }
  }
  return indexArr;
}

Comments

Popular posts from this blog

Code Wars: Data Reverse (6 kyu)

Code Wars: longest_palindrome (6 kyu)

Code Wars: Find the odd int