 GeeksforGeeks App
Open App Browser
Continue

# Javascript Program for 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
Recommended: Please try your approach on {IDE} first, before moving on to the solution.
Method 1 (Naive) 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

Javascript

`<script> `
` `
`// 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    `
` `
`</script> `

Output : 3Time complexity:O(n^2)Method 2 (Efficient) If we take a closer look, we can notice following facts. Maximum element is always part of solutionIf 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 maxJavascript`<script>``    ``// 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, 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.``</script>`Output :  3Time complexity:O(n) Please refer complete article on Number of pairs with maximum sum for more details!My Personal Notes
arrow_drop_up```