PHP Program for Number of pairs with maximum sum
Last Updated :
23 Jul, 2024
Write a PHP 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
Naive Approach
- Initialize a loop to traverse variable i from 0 to n-1, where n is the length of the array.
- Inside the first loop, initialize another loop to traverse variable j from i+1 to n.
- For each iteration of the loops, calculate the sum of elements at indices i and j.
- Track the maximum sum encountered during the iterations.
- After finding the maximum sum, initialize another set of nested loops similar to the first step.
- Count the number of pairs (i, j) such that the sum of elements at these indices equals the maximum sum previously identified.
Below is the Implementation of the above Approach:
PHP
<?php
// PHP program to count pairs
// with maximum sum.
// function to find the number
// of maximum pair sum
function sum( $a, $n)
{
// traverse through all
// the pairs
$maxSum = PHP_INT_MIN;
for($i = 0; $i < $n; $i++)
for($j = $i + 1; $j < $n; $j++)
$maxSum = max($maxSum, $a[$i] + $a[$j]);
// traverse through all
// pairs and keep a count
// of the number of
// maximum pairs
$c = 0;
for($i = 0; $i < $n; $i++)
for($j = $i + 1; $j < $n; $j++)
if ($a[$i] + $a[$j] == $maxSum)
$c++;
return $c;
}
// Driver Code
$array = array(1, 1, 1, 2, 2, 2);
$n = count($array);
echo sum($array, $n);
// This code is contributed by anuj_67.
?>
Complexity Analysis:
- 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:
PHP
<?php
// PHP 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.
$maxVal = $a[0]; $maxCount = 1;
$secondMax = PHP_INT_MIN;
$secondMaxCount;
for ( $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 *
($maxCount - 1) / 2;
// If maximum element
// appears only once.
return $secondMaxCount;
}
// Driver Code
$array = array(1, 1, 1, 2,
2, 2, 3 );
$n = count($array);
echo sum($array, $n);
// This code is contributed by anuj_67.
?>
Complexity Analysis:
- Time complexity: O(n)
- Auxiliary Space: O(1)
Please refer complete article on Number of pairs with maximum sum for more details!
Similar Reads
PHP program to find the maximum and the minimum in array Finding the maximum and minimum in an array involves determining the largest and smallest values within a given set of numbers. This task is crucial for analyzing data, identifying trends, or filtering outliers. Various methods, from simple traversal to optimized algorithms, can achieve this.Example
7 min read
PHP Program to Find the Maximum Element in a Matrix Given a matrix, the task is to find the maximum element of the matrix (arrays of arrays) in PHP. Finding the maximum element in a matrix is a common task that involves iterating through all the elements of the matrix and keeping track of the largest value found. Example: Input: matrix = [ [1, 2, 3],
4 min read
Find the Second Largest Element in an Array in PHP We will be given with an integer array, i.e. $array1 or $ array2, and the task is to find the second largest element in the array. There are multiple ways to approach and solve this problem however using sorting is the most common and concise approach as we use the rsort() function for further opera
3 min read
Find the Most Frequent Element in an Array in PHP Given an array, i.e. $arr, the task is to find the most frequent element in an array. There are multiple ways to solve this problem in PHP we will be going to discuss them. These problems can be used during data analysis, Web Analytics, or highly used in fraud detection. Example: Input: $array = [1,
2 min read
PHP max() Function The max() function is an inbuilt function in PHP, used to find the numerically maximum value in an array or the numerically maximum value of several specified values. Syntaxmax(array_values) or max(value1, value2, ...)ParametersThis function accepts two different types of arguments which are explain
2 min read
PHP Program for Pairs such that one is a power multiple of other You are given an array A[] of n-elements and a positive integer k (k > 1). Now you have find the number of pairs Ai, Aj such that Ai = Aj*(kx) where x is an integer. Note: (Ai, Aj) and (Aj, Ai) must be count once.Examples : Input : A[] = {3, 6, 4, 2}, k = 2Output : 2Explanation : We have only two
3 min read