Question
You are given an m x n integer grid 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.
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
Algorithm-1
给定数组accounts,返回行总和最大的值。须判断边界条件,使用vector的库函数accumulate。解法复杂度为O(n^2)。
Code-1
C++
class Solution {
public:
int maximumWealth(vector<vector<int>>& accounts) {
if (accounts.size() < 1 || accounts[0].size() < 1)
return 0;
int customer_num = accounts.size();
int maximum = 0, cur_sum = 0;
for (int i = 0; i < customer_num; i++)
{
cur_sum = accumulate(accounts[i].begin(), accounts[i].end(), 0);
if (cur_sum > maximum)
maximum = cur_sum;
}
return maximum;
}
};
Algorithm-2
给定一个二维数组A,A[i]代表客户i在各个银行的资产。问总资产最多的客户的总资产是多少。 直接统计。代码如下:
Code-2
Java
public class Solution {
public int maximumWealth(int[][] accounts) {
int res = 0;
for (int[] account : accounts) {
int asset = 0;
for (int i = 0; i < account.length; i++) {
asset += account[i];
}
res = Math.max(res, asset);
}
return res;
}
}
return res;
}
}