Open In App

Python – Maximum Sum Record

Improve
Improve
Like Article
Like
Save
Share
Report

Sometimes, while working with data, we might have a problem in which we need to find maximum sum between available pairs in list. This can be application to many problems in mathematics domain. Let’s discuss certain ways in which this task can be performed. 

Method #1 : Using max() + list comprehension The combination of this functions can be used to perform this task. In this, we compute the sum of all pairs and then return the max of it using max(). 

Python3




# Python3 code to demonstrate working of
# Maximum Sum Record
# Using list comprehension + max()
 
# initialize list
test_list = [(3, 5), (1, 7), (10, 3), (1, 2)]
 
# printing original list
print("The original list : " + str(test_list))
 
# Maximum Sum Record
# Using list comprehension + max()
temp = [b + a for a, b in test_list]
res = max(temp)
 
# printing result
print("Maximum sum among pairs : " + str(res))


Output : 

The original list : [(3, 5), (1, 7), (10, 3), (1, 2)]
Maximum sum among pairs : 13

Time complexity: O(n), where n is the length of the test_list.
Auxiliary space: O(n), where n is the length of the test_list.

  Method #2 : Using max() + lambda This is similar to above method. In this the task performed by list comprehension is solved using lambda function, providing the sum computation logic. Returns the max. sum pair. 

Python3




# Python3 code to demonstrate working of
# Maximum Sum Record
# Using lambda + max()
 
# initialize list
test_list = [(3, 5), (1, 7), (10, 3), (1, 2)]
 
# printing original list
print("The original list : " + str(test_list))
 
# Maximum Sum Record
# Using lambda + max()
res = max(test_list, key = lambda sub: sub[1] + sub[0])
 
# printing result
print("Maximum sum among pairs : " + str(res))


Output : 

The original list : [(3, 5), (1, 7), (10, 3), (1, 2)]
Maximum sum among pairs : 13

Time Complexity: O(n) where n is the number of elements in the string list. The max() + lambda is used to perform the task and it takes O(n) time.
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the res list.

Method #3 : Using Heapq.nlargest
 

Python3




#Method #3 : Using Heapq.nlargest
#Importing heapq module for nlargest()
import heapq
 
#initialize list
test_list = [(3, 5), (1, 7), (10, 3), (1, 2)]
 
#printing original list
print("The original list : " + str(test_list))
 
#Maximum Sum Record
#Using heapq.nlargest
res = heapq.nlargest(1, test_list, key=lambda x: x[0] + x[1])[0]
 
#printing result
print("Maximum sum among pairs : " + str(sum(res)))
#This code is contributed by Edula Vinay Kumar Reddy


Output

The original list : [(3, 5), (1, 7), (10, 3), (1, 2)]
Maximum sum among pairs : 13

Time complexity: O(n log k), where k is the number of elements to retrieve.
Auxiliary Space: O(k), since we only store k elements in the heap.



Last Updated : 09 Apr, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads