Find the sum pair of the elements inside the array?

0

Issue

Have the function ArrayChallenge(arr) take the array of integers stored in arr, and determine if any two numbers (excluding the first element) in the array can sum up to the first element in the array. For example: if arr is [7, 3, 5, 2, -4, 8, 11], then there are actually two pairs that sum to the number 7: [5, 2] and [-4, 11]. Your program should return all pairs, with the numbers separated by a comma, in the order the first number appears in the array. Pairs should be separated by a space. So for the example above, your program would return: 5,2 -4,11

If there are no two numbers that sum to the first element in the array, return -1

Input: [17, 4, 5, 6, 10, 11, 4, -3, -5, 3, 15, 2, 7]
Output: 6,11 10,7 15,2
Final Output: --6--,--1----1-- --1--0,7 --1----5--,2

Input: [7, 6, 4, 1, 7, -2, 3, 12]
Output: 6,1 4,3
Final Output: --6--,--1-- 4,3

My approach

 function ArrayChallenge(arr) { 

 var sum = []

 for (var i = 0; i < arr.length; i++){
    for (var j = i + 1; j < arr.length; j++){
    if(arr.[i] + arr[j]=== )
    }
   }
   // code goes here  
   return arr; 

   }

     // keep this function call here 
    console.log(ArrayChallenge(readline()));

Can you please help me with this ?

Solution

Logic

  • Loop through the array.
  • Start from index 1 to last node (except index 0) in the outer loop.
  • Srart from one node next to the outer loop in the inner loop.
  • Check the sum of both nodes.
  • If the sum value is same as the node at first index, push that to sum array in required format.
  • Check the length of sum array. If length > 0 the join sum array and return. Else return -1

Working Code

const input = [17, 4, 5, 6, 10, 11, 4, -3, -5, 3, 15, 2, 7];
const input2 = [7, 6, 4, 1, 7, -2, 3, 12];
const input3 = [37, 6, 4, 1, 7, -2, 3, 12];
function ArrayChallenge(arr) {
  var sum = []
  for (var i = 1; i < arr.length; i++) {
    for (var j = i + 1; j < arr.length; j++) {
      if (arr[i] + arr[j] === arr[0]) {
        sum.push([arr[i], arr[j]].join());
      }
    }
  }
  return sum.length > 0 ? sum.join(" ") : -1;
}
console.log(ArrayChallenge(input));
console.log(ArrayChallenge(input2));
console.log(ArrayChallenge(input3));

Answered By – Nitheesh

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave A Reply

Your email address will not be published.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More