Python Program for Number of pairs with maximum sum
Last Updated :
19 Oct, 2023
Write a python program for a given 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<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
Python 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<j. Find the pair with the maximum possible sum, again traverse for all pairs and keep the count of the number of pairs which gives the pair sum equal to maximum .
Below is the Implementation of the above Approach:
Python3
# Python program to count pairs with
# maximum sum
def _sum(a, n):
# traverse through all the pairs
maxSum = -9999999
for i in range(n):
for j in range(n):
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 in range(n):
for j in range(i+1, n):
if a[i] + a[j] == maxSum:
c += 1
return c
# driver code
array = [1, 1, 1, 2, 2, 2]
n = len(array)
print(_sum(array, n))
# This code is contributed by "Abhishek Sharma 44"
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:
Python3
# Python 3 program to count
# pairs with maximum sum.
import sys
# Function to find the number
# of maximum pair sums
def sum(a, n):
# Find maximum and second maximum elements.
# Also find their counts.
maxVal = a[0]
maxCount = 1
secondMax = sys.maxsize
for i in range(1, n):
if (a[i] == maxVal):
maxCount += 1
elif (a[i] > maxVal):
secondMax = maxVal
secondMaxCount = maxCount
maxVal = a[i]
maxCount = 1
elif (a[i] == secondMax):
secondMax = a[i]
secondMaxCount += 1
elif (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 = [1, 1, 1, 2, 2, 2, 3]
n = len(array)
print(sum(array, n))
# This code is contributed by Smitha Dinesh Semwal
Time complexity: O(n)
Auxiliary Space: O(1)
Please refer complete article on Number of pairs with maximum sum for more details!
Similar Reads
Python Program to print a specific number of rows with Maximum Sum Given a Matrix, the following article extracts a specifies number of rows that has a maximum sum. Input : test_list = [[3, 4, 5, 6], [1, 4, 6], [199], [2, 3, 4, 5, 6], [7, 3, 1]], K = 3Â Output : [[199], [2, 3, 4, 5, 6], [3, 4, 5, 6]]Â Explanation : 199 > 20 > 18, 3 maximum elements rows are e
5 min read
Python Program for Count pairs with given sum Given an array of integers, and a number 'sum', find the number of pairs of integers in the array whose sum is equal to 'sum'. Examples: Input : arr[] = {1, 5, 7, -1}, sum = 6 Output : 2 Pairs with sum 6 are (1, 5) and (7, -1) Input : arr[] = {1, 5, 7, -1, 5}, sum = 6 Output : 3 Pairs with sum 6 are
3 min read
Python Program to extract dictionaries with maximum number of keys Given a list of dictionaries, the task is to write a Python program to extract a dictionary with a maximum number of keys. Input : test_list = [{'Gfg' : 1}, {'Gfg' : 1, 'is' : 5, 'best' : 4}, {'Gfg' : 2, 'best' : 9}] Output : {'Gfg' : 1, 'is' : 5, 'best' : 4} Explanation : Dictionary with max. lengt
7 min read
Python - Pair with Maximum product Sometimes, we need to find the specific problem of getting the pair which yields the maximum product, this can be computed by getting initial two elements after sorting. But in some case, we donât with to change the ordering of list and perform some operation in the similar list without using extra
6 min read
Python 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 = 2 Output : 2 Explanation : We have only t
2 min read