Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Find the sum pair of the elements inside the array?

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 ?

like image 907
Samyog Dhital Avatar asked Dec 07 '25 02:12

Samyog Dhital


1 Answers

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));
like image 95
Nitheesh Avatar answered Dec 08 '25 15:12

Nitheesh



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!