Given lists in a list, find the maximum sum of elements of list in a list of lists. Examples:
Input : [[1, 2, 3], [4, 5, 6], [10, 11, 12], [7, 8, 9]] Output : 33 Explanation: sum of all lists in the given list of lists are: list1 = 6, list2 = 15, list3 = 33, list4 = 24 so the maximum among these is of Input : [[3, 4, 5], [1, 2, 3], [0, 9, 0]] Output : 12
Method 1 : Traversal of list in lists
We can traverse in the lists inside the list and sum up all the elements in a given list and by max function get the maximum of sum of all elements in lists of list.
Python
# Python program to find the # list in a list of lists whose # sum of elements is the highest # using traversal def maximumSum(list1): maxi = 0 # traversal in the lists for x in list1: sum = 0 # traversal in list of lists for y in x: sum + = y maxi = max ( sum , maxi) return maxi # driver code list1 = [[ 1 , 2 , 3 ], [ 4 , 5 , 6 ], [ 10 , 11 , 12 ], [ 7 , 8 , 9 ]] print maximumSum(list1) |
33
Time Complexity: O(n*m) where n is the number of lists and m is the maximum size of the list.
Auxiliary Space: O(1)
Method 2 : Traversal of list
Traverse in the outer list only, and sum all elements in the inner lists by using sum() function, find the sum of all the lists and get the maximum of all the sum calculated.
Python
# Python program to find the # list in a list of lists whose # sum of elements is the highest # using sum and max function and traversal def maximumSum(list1): maxi = 0 # traversal for x in list1: maxi = max ( sum (x), maxi) return maxi # driver code list1 = [[ 1 , 2 , 3 ], [ 4 , 5 , 6 ], [ 10 , 11 , 12 ], [ 7 , 8 , 9 ]] print maximumSum(list1) |
33
Time Complexity: O(n*m) where n is the number of lists and m is the maximum size of the list.
Auxiliary Space: O(1)
Method 3 : Sum and Max function
sum(max(list1, key=sum))
The above syntax of max() function allows us to find the sum of list in list using the key=sum. max(list1, key=sum), this finds the list with maximum sum of elements and then sum(max(list1, key=sum)) returns us the sum of that list.
Python
# Python program to find the # list in a list of lists whose # sum of elements is the highest # using sum and max function def maximumSum(list1): return ( sum ( max (list1, key = sum ))) # driver code list1 = [[ 1 , 2 , 3 ], [ 4 , 5 , 6 ], [ 10 , 11 , 12 ], [ 7 , 8 , 9 ]] print maximumSum(list1) |
33
Time Complexity: O(n*m) where n is the number of lists and m is the maximum size of the list.
Auxiliary Space: O(1)
Method 4 : Using sum() and sort() methods
Python3
# Python program to find the # list in a list of lists whose # sum of elements is the highest # using traversal def maximumSum(list1): x = [] for i in list1: x.append( sum (i)) x.sort() return x[ - 1 ] # driver code list1 = [[ 1 , 2 , 3 ], [ 4 , 5 , 6 ], [ 10 , 11 , 12 ], [ 7 , 8 , 9 ]] print (maximumSum(list1)) |
33
Time Complexity : O(NlogN)
Auxiliary Space : O(N)
Method 5 : Using reduce()
This method uses the reduce() function to iterate over the list of lists and a lambda function to compare the sums of each list. The lambda function returns the list with the larger sum, and the reduce function keeps track of the maximum sum by repeatedly applying the lambda function to the list of lists. The final result is the sum of the list with the maximum sum.
Here is another approach using the reduce() function and a lambda function:
Python3
from functools import reduce def maximum_sum(lists): # Use the reduce function to calculate the maximum sum # by comparing the sums of each list max_sum = reduce ( lambda x, y: x if sum (x) > sum (y) else y, lists) return sum (max_sum) lists = [[ 1 , 2 , 3 ], [ 4 , 5 , 6 ], [ 10 , 11 , 12 ], [ 7 , 8 , 9 ]] print (maximum_sum(lists)) # 33 #This code is contributed by Edula Vinay Kumar Reddy |
33
Time complexity: O(n*m) where n is the number of lists and m is the maximum size of the list.
Space complexity: O(1)