JavaScript Program to Construct an Array from its pair-sum Array
Last Updated :
18 Sep, 2023
The pair-sum array is a unique construction that holds the sum of all potential pairs of elements from the original array. At first glance, it might appear to be challenging, but in this article, we'll Construct an array from its pair-sum array and discover some of its most intriguing uses.
What is Pair - Sum Array?
A pair-sum array in JavaScript is an array that holds the total number of potential pairs of elements from the original array. The pair-sum array, designated as pairSumArr, will have a length of n*(n-1)/2 when an array arr of length n is given. This is because it contains the sum of all conceivable combinations of two entries from the original array.
Example 1:
Suppose we have the original array arr = [2, 5, 7]. The pair-sum array will be:
pairSumArr = [2+5, 2+7, 5+7] = [7, 9, 12]
Here, pairSumArr[0] contains the sum of the first two elements of arr, i.e., 2 + 5 = 7.
Similarly, pairSumArr[1] contains the sum of the first and last elements of arr, i.e., 2 + 7 = 9,
and pairSumArr[2] contains the sum of the last two elements of arr, i.e., 5 + 7 = 12
Example 2:
2. If we take another example Suppose we have the original array arr = [3, 6, 8, 2].
We will construct the pair-sum array for this array.
pairSumArr = [3+6, 3+8, 3+2, 6+8, 6+2, 8+2]
pairSumArr = [9, 11, 5, 14, 8, 10]
Use of Pair - Sum Array
- Array Reconstruction: If the pair-sum array is known, it can be used to rebuild the original array. In this procedure, the sum array is reverse-engineered to get the elements of the original array.
- Combinatorics: Applications of the pair-sum array include combinatorial issues, particularly when array combinations are involved.
- Optimization Problems: The pair-sum array can assist in identifying patterns and connections between items in some optimization problems, resulting in optimum solutions.
- Finding Missing Elements: When some items of an array are lost but their pairwise sums are still available, the pair-sum array can be useful. We may determine the elements that are missing by using the pair-sum array.
Constructing the Original Array from Pair-Sum Array
In JavaScript, we may apply a straightforward approach to create an array from its pair-sum array. The approach includes reconstructing the original array by going backward through the pair-sum array generation process given the pair-sum array pairSumArr. The fundamental concept is to use the provided pair-sum array to identify the original array's missing items. We must reverse engineer the pair-sum array's generation in order to create the original array from its pair-sum array. We may effectively rebuild the original array by recognizing the pattern and using the right algorithm.
Approach
The basic algorithm to construct an original array from a pair-sum array includes the following steps as follow.
- Create an array of size n to store the original array elements.
- Iterate n times and find the missing elements of the original array by performing reverse operations on the pair-sum array.
- Calculate the length of the pair-sum array.
- Calculate the length of the Original Array from the given Pair Sum Array.
- Return the reconstructed
Example:
JavaScript
// Function to construct original array
// from pair sum array
function constructArr(pair, n) {
let arr = new Array(n);
// Calculate the first element of
// the original array
// first element = (pair[0] + pair[1]
// - pair[n-1]) / 2
arr[0] = Math.floor(
(pair[0] + pair[1] - pair[n - 1]) / 2
);
for (let i = 1; i < n; i++)
arr[i] = pair[i - 1] - arr[0];
return arr;
}
// Function to calculate the length of the
// original array from the given pair sum array
function calculateOriginalArrayLength(pairSumArrayLength) {
return Math.ceil(
(Math.sqrt(8 * pairSumArrayLength + 1) + 1) / 2
);
}
// Given pair sum array
let pair = [13, 11, 10, 13, 10, 9, 12, 7, 10, 9];
// Calculate the length of the pair sum array
const arrayLength = pair.length;
// Calculate the length of the original array
const originalArrayLength =
calculateOriginalArrayLength(arrayLength);
// Number of elements in the original array
let n = originalArrayLength;
// Create an array which can store original array
let originalArr = constructArr(pair, n);
// Required Original array from the Pair sum Array
console.log("Original Array:", originalArr);
OutputOriginal Array: [ 7, 6, 4, 3, 6 ]
Similar Reads
JavaScript Program to Count Reverse Pairs
Given an array, array [] of N integers, find the count of reverse pairs. A pair of indices (i, j) is said to be a reverse pair if both the following conditions are met: 0 <= i < j < N arr[i] > 2 * arr[j]Examples: Input: N = 6, arr = [3, 2, 4, 5, 1, 20]Output: 3Explanation: The reverse pa
3 min read
Check if Pair with Given Sum Exists in Array in JavaScript
Two Sum is a classic algorithmic problem where you're given an array of integers and a target sum. The task is to determine whether any two numbers in the array add up to the target sum. Given an array A[] of n numbers and another number x, the task is to check whether or not there exist two element
3 min read
Javascript Program to Count pairs with given sum
Given an array of integers, and a number 'sum', find the number of pairs of integers in the array whose sum is equal to 'sum'.Note: Duplicate pairs are also allowed. Examples: Input : arr[] = {1, 5, 7, -1}, sum = 6 Output : 2 Pairs with sum 6 are (1, 5) and (7, -1) Input : arr[] = {1, 5, 7, -1, 5},
2 min read
Javascript Program for Find k pairs with smallest sums in two arrays
Given two integer arrays arr1[] and arr2[] sorted in ascending order and an integer k. Find k pairs with smallest sums such that one element of a pair belongs to arr1[] and other element belongs to arr2[]Examples: Input : arr1[] = {1, 7, 11} arr2[] = {2, 4, 6} k = 3Output : [1, 2], [1, 4], [1, 6]Exp
3 min read
Javascript Program to Find a pair with the given difference
Given an unsorted array and a number n, find if there exists a pair of elements in the array whose difference is n. Examples: Input: arr[] = {5, 20, 3, 2, 50, 80}, n = 78Output: Pair Found: (2, 80)Input: arr[] = {90, 70, 20, 80, 50}, n = 45Output: No Such PairNative Approach:The simplest method is t
4 min read
Java Program to Change a Collection to an Array
An array is a data structure that can hold a fixed-size, homogeneous collection of elements of the same data type, which can be either primitive data types (e.g., int, float) or object references. However, the size of the array cannot be changed once it is created. On the other hand, a collection is
3 min read
Javascript Program for Largest Sum Contiguous Subarray
Write an efficient program to find the sum of contiguous subarray within a one-dimensional array of numbers that has the largest sum. Kadane's Algorithm:Initialize: max_so_far = INT_MIN max_ending_here = 0Loop for each element of the array (a) max_ending_here = max_ending_here + a[i] (b) if(max_so_f
5 min read
Java Program to Print the Elements of an Array
An array is a data structure that stores a collection of like-typed variables in contiguous memory allocation. Once created, the size of an array in Java cannot be changed. It's important to note that arrays in Java function differently than they do in C/C++As you see, the array of size 9 holds elem
6 min read
How to Convert an ArrayList Containing Integers to Primitive Int Array?
In Java, ArrayList is the pre-defined class of the Java Collection Framework. It is part of the java.util package. ArrayList can be used to add or remove an element dynamically in the Java program. It can be snipped dynamically based on the elements added or removed into the ArrayList. In this artic
2 min read
How to Find Matching Pair from an Array in PHP ?
Given an Array, the task is to find the matching pair from a given array in PHP. Matching a pair from an array involves searching for two elements that satisfy a certain condition, such as having the same value, summing up to a specific target, or meeting some other criteria. Here, we will cover thr
5 min read