Learn Simpli

Free Online Tutorial For Programmers, Contains a Solution For Question in Programming. Quizzes and Practice / Company / Test interview Questions.

Find a pair of elements from an array whose sum equals a given number in javascript

 

Find a pair of elements from an array whose sum equals a given number in javascript:

We can find a pair of elements from an array whose sum equals a given number in javascript in a different way. Listing the easiest methods.

Solution 1 :

  1. The first thing isĀ  to sort an array
  2. Store the first element of an array
  3. Store the last element of an array
  4. Add the first and last element as theSum
  5. If tempSum === theSum then add the pair as an element to an object
function pairMatchingSum (arr, sum)
{
    var start, end, tempSum;
    var i = 0 ;
    var j = arr.length - 1;
    // Create a new Object instance
    var pairValues = {};
    var sortedArray = arr.sort();
    while (i !== j)
    {
        start = sortedArray[i];
        end = sortedArray[j];
        tempSum = start + end;
        if (tempSum === sum)
        {
            // Add matching pair to the Object. Object does not allow duplicate keys.
            pairValues[start +'-'+ end] = true;
            i++;
            j--;
        }
        else if (tempSum > sum)
        {
            j--;
        }
        else
        {   
            i++;
        }
    }
    console.info("Pairs of values", Object.keys(pairValues));
}

var array = [2, 3, 2, 5, 4, 5, 5, 5, 5, 9, 6, 8, 8, 7];
var sum = 10;
pairMatchingSum(array, sum);

Solution 2 :

Using the for-loop with HashMap function

let pairMatchingSum = (array, sum) => 
{
    let mapObject = {},
    mathcingPair = []

    for (let i = 0; i < array.length; i++)
    {
        if (mapObject[array[i]])
        {
            mathcingPair.push([mapObject[array[i]], array[i]])
        }
        else
        {
            mapObject[sum - array[i]] = array[i];
        }
    }
    return mathcingPair;
}

console.log(pairMatchingSum([10,20,10,40,50,60,70,30],50));

 

Also, read What are interfaces?

One thought on “Find a pair of elements from an array whose sum equals a given number in javascript

Comments are closed.