Difficulty: Easy | Acceptance: 88.70% | Paid: No Topics: Array, Matrix
You are given an integer array accounts where accounts[i][j] is the amount of money the ith customer has in the jth bank. Return the wealth that the richest customer has.
A customer’s wealth is the amount of money they have in all their bank accounts. The richest customer is the customer that has the maximum wealth.
- Examples
- Constraints
- Iterative Row Sum
- Functional Programming
Examples
Example 1:
Input: accounts = [[1,2,3],[3,2,1]]
Output: 6
Explanation:
1st customer has wealth = 1 + 2 + 3 = 6
2nd customer has wealth = 3 + 2 + 1 = 6
Both customers are considered the richest with a wealth of 6 each, so return 6.
Example 2:
Input: accounts = [[1,5],[7,3],[3,5]]
Output: 10
Explanation:
1st customer has wealth = 6
2nd customer has wealth = 10
3rd customer has wealth = 8
The 2nd customer is the richest with a wealth of 10.
Example 3:
Input: accounts = [[2,8,7],[7,1,3],[1,9,5]]
Output: 17
Constraints
m == accounts.length
n == accounts[i].length
1 <= m, n <= 50
1 <= accounts[i][j] <= 100
Iterative Row Sum
Intuition We iterate through each customer (row) and sum up their money across all banks (columns). We keep track of the maximum sum found so far.
Steps
- Initialize
max_wealthto 0. - Loop through each customer in the
accountsarray. - For each customer, calculate the sum of their bank accounts.
- If the current customer’s wealth is greater than
max_wealth, updatemax_wealth. - Return
max_wealth.
class Solution:
def maximumWealth(self, accounts: List[List[int]]) -> int:
max_wealth = 0
for customer in accounts:
current_wealth = sum(customer)
if current_wealth > max_wealth:
max_wealth = current_wealth
return max_wealthComplexity
- Time: O(m·n)
- Space: O(1)
- Notes: We only use a few variables to store the current and maximum wealth.
Functional Programming
Intuition Utilize built-in array methods to map each customer to their total wealth and then reduce the array to find the maximum value.
Steps
- Map each row (customer) to the sum of its elements.
- Find the maximum value in the resulting array of sums.
class Solution:
def maximumWealth(self, accounts: List[List[int]]) -> int:
return max(sum(customer) for customer in accounts)Complexity
- Time: O(m·n)
- Space: O(m) or O(1)
- Notes: In languages like JavaScript,
mapcreates a new array, resulting in O(m) space. In Python, using a generator expression keeps it at O(1).