# JavaScript Program for Mirror of matrix across diagonal

JavaScript Program for the Number of pairs with maximum sum is a common coding problem that involves finding the number of pairs in an array that have the maximum sum. This problem can be solved using various approaches, including brute-force, sorting, and hash tables. In this tutorial, we will discuss a simple and efficient approach using hash tables to solve this problem. We will explain the logic behind the solution step-by-step and provide a detailed implementation in JavaScript. Additionally, we will analyze the time and space complexity of our solution and discuss possible optimizations. This tutorial assumes basic knowledge of JavaScript programming and data structures. So let’s get started!

## Problem Statement

Given an array of integers, find the number of pairs of integers in the array that have the maximum sum.

Let’s understand this problem statement with some examples.

### Sample Examples

Example 1 −

Input: [1, 2, 3, 4, 5]
Output: 1


Explanation − In the given input array, the maximum sum of a pair is 9 (4 + 5). There is only one pair that has this maximum sum, which is (4, 5). Therefore, the output is 1.

Example 2 −

Input: [1, 1, 1, 2, 2, 2]
Output: 3


Explanation  In the given input array, there are two pairs that have the maximum sum of 3, which are (1, 2), (1, 2), and (1, 2). Therefore, the output is 3.

Now, as we mentioned above this problem can be solved using various approaches. So let’s see each approach and choose the best one.

## 1. Brute Force Approach

In the brute force approach, we can consider all possible pairs of integers in the array and find the maximum sum. Then we can count the number of pairs that have the same maximum sum. This approach has a time complexity of O(n^2), where n is the number of elements in the array.

## 2. Sorting Approach

In the sorting approach, we can sort the array in descending order and then find the maximum sum by taking the sum of the first two elements. Then we can count the number of pairs that have the same maximum sum. This approach has a time complexity of O(nlogn), where n is the number of elements in the array.

## 3. Hash Table Approach

In the hash table approach, we can use a hash table to keep track of the frequency of each element in the array. Then we can find the maximum element in the array and count the number of pairs that have the same maximum sum. This approach has a time complexity of O(n), where n is the number of elements in the array.

Among these approaches, the hash table approach is the most efficient as it has a linear time complexity. In this tutorial, we will discuss the hash table approach in detail and provide a Javascript implementation. We will explain the logic behind the solution step-by-step and analyze the time and space complexity of our solution.

So let’s understand the steps involved in the hash table algorithm to solve this problem.

### Algorithm

• Step 1 − Create a hash table to store the frequency of each element in the array.

• Step 2 − Find the maximum element in the array.

• Step 3 − Find the frequency of the maximum element in the hash table.

• Step 4 − If the frequency of the maximum element is greater than 1, then the number of pairs with maximum sum is equal to the product of the frequency of the maximum element and (frequency of the maximum element - 1) divided by 2. This is because the number of ways to choose two elements from n elements is equal to n choose 2, which is equal to n*(n-1)/2.

• Step 5 − If the frequency of the maximum element is equal to 1, then we need to find the second maximum element in the array. To do this, we can iterate through the hash table in descending order and find the second maximum element that has a non-zero frequency.

• Step 6 − Calculate the number of pairs with the maximum sum using the frequency of the maximum element and the frequency of the second maximum element. The formula for this is the product of the frequency of the maximum element and the frequency of the second maximum element.

Using this approach, we can find the number of pairs with the maximum sum in linear time, which is O(n), where n is the number of elements in the array.

In the next section, we will provide a detailed Javascript implementation of this approach with an example. So let’s do it!

### Example: Implementation of Hash Table Approach Using JavaScript

Input 1: [1, 2, 3, 4, 5]

Expected Output: Number of pairs with maximum sum: 1

Input 2: [1, 1, 1, 2, 2, 2]

Expected Output: Number of pairs with maximum sum: 3

function findNumberOfPairsWithMaxSum(arr) {
let freq = {};
let max = -Infinity;
let secondMax = -Infinity;
// Count the frequency of each element in the array
for (let i = 0; i < arr.length; i++) {
freq[arr[i]] = freq[arr[i]] ? freq[arr[i]] + 1 : 1;
if (arr[i] > max) {
secondMax = max;
max = arr[i];
} else if (arr[i] > secondMax && arr[i] < max) {
secondMax = arr[i];
}
}
// Find the number of pairs with the maximum sum
if (freq[max] > 1) {
let count = freq[max] * (freq[max] - 1) / 2;
console.log("Number of pairs with maximum sum:", count);
} else {
let count = freq[max] * freq[secondMax];
console.log("Number of pairs with maximum sum:", count);
}
}
// Test the function with sample inputs
findNumberOfPairsWithMaxSum([1, 2, 3, 4, 5]);
findNumberOfPairsWithMaxSum([1, 1, 1, 2, 2, 2]);


## Conclusion

So, in this tutorial, we discussed how to solve the "Number of pairs with maximum sum" problem using a simple and efficient approach with hash tables. This approach has a time complexity of O(n), where n is the number of elements in the array. We provided a detailed Javascript implementation of this approach and tested it with sample inputs. With this approach, we can easily find the number of pairs with the maximum sum in an array, making it a useful technique in various programming scenarios.

Updated on: 02-May-2023

164 Views 