Javascript Program for Number of pairs with maximum sum
Last Updated :
19 Oct, 2023
Write a javascript program for a given array arr[], count the number of pairs arr[i], arr[j] such that arr[i] + arr[j] is maximum and i < j.
Example:
Input : arr[] = {1, 1, 1, 2, 2, 2}
Output: 3
Explanation: The maximum possible pair sum where i<j is 4, which is given by 3 pairs, so the answer is 3 the pairs are (2, 2), (2, 2) and (2, 2)
Input: arr[] = {1, 4, 3, 3, 5, 1}
Output: 1
Explanation: The pair 4, 5 yields the maximum sum i.e, 9 which is given by 1 pair only
Javascript Program for Number of pairs with maximum sum using Naive Approach:
Traverse a loop i from 0 to n, i.e length of the array and another loop j from i+1 to n to find all possible pairs with i<j. Find the pair with the maximum possible sum, again traverse for all pairs and keep the count of the number of pairs which gives the pair sum equal to maximum .
Below is the Implementation of the above Approach:
JavaScript
// JavaScript program to count pairs
// with maximum sum.
// Function to find the number of
// maximum pair sums
function sum(a, n)
{
// traverse through all the pairs
let maxSum = Number.MIN_VALUE;
for(let i = 0; i < n; i++)
for(let j = i + 1; j < n; j++)
maxSum = Math.max(maxSum,
a[i] + a[j]);
// Traverse through all pairs and
// keep a count of the number of
// maximum pairs
let c = 0;
for(let i = 0; i < n; i++)
for(let j = i + 1; j < n; j++)
if (a[i] + a[j] == maxSum)
c++;
return c;
}
// Driver Code
let array = [ 1, 1, 1, 2, 2, 2 ];
let n = array.length;
document.write(sum(array, n));
// This code is contributed by code_hunt
Time complexity: O(n2)
Auxiliary Space: O(1)
Efficient Method:
- Maximum element is always part of solution.
- If maximum element appears more than once, then result is maxCount * (maxCount – 1)/2. We basically need to choose 2 elements from maxCount (maxCountC2).
- If maximum element appears once, then result is equal to count of second maximum element. We can form a pair with every second max and max.
Below is the Implementation of the above Approach:
JavaScript
// Javascript program to count pairs with maximum sum.
// function to find the number
// of maximum pair sums
function sum(a, n)
{
// Find maximum and second maximum
// elements. Also find their counts.
let maxVal = a[0], maxCount = 1;
let secondMax = Number.MIN_VALUE;
let secondMaxCount = 0;
for (let i = 1; i < n; i++)
{
if (a[i] == maxVal)
maxCount++;
else if (a[i] > maxVal)
{
secondMax = maxVal;
secondMaxCount = maxCount;
maxVal = a[i];
maxCount = 1;
}
else if (a[i] == secondMax)
{
secondMax = a[i];
secondMaxCount++;
}
else if (a[i] > secondMax)
{
secondMax = a[i];
secondMaxCount = 1;
}
}
// If maximum element appears
// more than once.
if (maxCount > 1)
return maxCount * parseInt((maxCount - 1) / 2, 10);
// If maximum element appears
// only once.
return secondMaxCount;
}
let array = [ 1, 1, 1, 2, 2, 2, 3 ];
let n = array.length;
document.write(sum(array, n));
// This code is contributed by divyesh072019.
Time complexity: O(n)
Auxiliary Space: O(1)
Please refer complete article on Number of pairs with maximum sum for more details!
Similar Reads
Number of pairs with maximum sum Given an array arr[], count number of pairs arr[i], arr[j] such that arr[i] + arr[j] is maximum and i < j. Example : Input : arr[] = {1, 1, 1, 2, 2, 2} Output : 3 Explanation: The maximum possible pair sum where i<j is 4, which is given by 3 pairs, so the answer is 3 the pairs are (2, 2), (2,
11 min read
Print all the sum pairs which occur maximum number of times Given an array arr[] of N distinct integers. The task is to find the sum of two array integers a[i] + a[j] which occurs maximum number of times. In the case of multiple answers, print all of them. Examples: Input: arr[] = {1, 8, 3, 11, 4, 9, 2, 7} Output: 10 12 11 The sum 10, 12 and 11 occur 3 times
6 min read
Maximum sum of pairs with specific difference Given an array of integers and a number k. We can pair two numbers of the array if the difference between them is strictly less than k. The task is to find the maximum possible sum of disjoint pairs. Sum of P pairs is the sum of all 2P numbers of pairs. Examples: Input : arr[] = {3, 5, 10, 15, 17, 1
15 min read
Maximize the number of sum pairs which are divisible by K Given an array of N integers and an integer K. The task is to print the maximum number of pairs(a[i]+a[j]) possible which are divisible by K. Note: A particular index number cannot be considered in more than one pair. Examples: Input: a[] = {1, 2, 2, 3, 2, 4, 10}, k =2 Output: 3 The pairs are: (1, 2
9 min read
Maximum count of pairs which generate the same sum Given an array arr[], the task is to count the maximum count of pairs that give the same sum. Examples: Input: arr[] = {1, 2, 3, 4} Output: 2 (1, 2) = 3 (1, 3) = 4 (1, 4), (2 + 3) = 5 (2, 4) = 6 (3, 4) = 7 Input: arr[] = {1, 8, 3, 11, 4, 9, 2, 7} Output: 3 Approach: Create a map to store the frequen
5 min read