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 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
PHP Program to Find the Size of Subarray With Maximum Sum Given an Array, the task is to find the size of the subarray that yields the maximum sum. This article provides a comprehensive guide on how to implement a PHP program to solve this problem efficiently.Examples: Input: Arr = [ 1, -2, 1, 1, -2, 1 ]Output: Length of the subarray is 2Explanation: The s
2 min read
PHP Program for Maximum and Minimum in a Square Matrix Given a square matrix of order n*n, find the maximum and minimum from the matrix given. Examples: Input : Arr = [ [ 5, 4, 9 ], [ 2, 0, 6 ], [ 3, 1, 8 ] ]; Output : Maximum = 9, Minimum = 0 Input : Arr = [[ -5, 3 ], [ 2, 4 ]]; Output : Maximum = 4, Minimum = -5Naive MethodWe find the maximum and mini
2 min read
PHP Program for Maximum Circular Subarray Sum Given n numbers (both +ve and -ve), arranged in a circle, find the maximum sum of consecutive numbers. Examples: Input: Arr = [ 8, -8, 9, -9, 10, -11, 12 ] Output: 22 (12 + 8 - 8 + 9 - 9 + 10) Input: Arr = [ 10, -3, -4, 7, 6, 5, -4, -1 ] Output: 23 (7 + 6 + 5 - 4 -1 + 10) Input: Arr = [ -1, 40, -14,
3 min read
PHP Program for Minimum Product Subset of an Array Given an array Arr, we have to find the minimum product possible with the subset of elements present in the array. The minimum product can be a single element also.Examples: Input : Arr = [ -1, -1, -2, 4, 3 ] Output : -24 Explanation : Minimum product will be ( -2 * -1 * -1 * 4 * 3 ) = -24 Input : A
3 min read