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.


Output

3

Time complexity: O(n)
Auxiliary Space: O(1)

Please refer complete article on Number of pairs with maximum sum for more details!



Javascript Program for Number of pairs with maximum sum

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

Similar Reads

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

Efficient Method:

...