携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第6天,点击查看活动详情
题目描述
给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。
客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。
来源:力扣(LeetCode)
- 示例 1
入:accounts = [[1,2,3],[3,2,1]]
输出:6
解释:
第 1 位客户的资产总量 = 1 + 2 + 3 = 6
第 2 位客户的资产总量 = 3 + 2 + 1 = 6
两位客户都是最富有的,资产总量都是 6 ,所以返回 6 。
- 示例 2
输入:accounts = [[1,5],[7,3],[3,5]]
输出:10
解释:
第 1 位客户的资产总量 = 6
第 2 位客户的资产总量 = 10
第 3 位客户的资产总量 = 8
第 2 位客户是最富有的,资产总量是 10
- 示例 2
输入: accounts = [[2,8,7],[7,1,3],[1,9,5]]
输出: 17
提示:
- m == accounts.length
- n == accounts[i].length
- 1 <= m, n <= 50
- 1 <= accounts[i][j] <= 100
思路分析
题目中整数网格accounts,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量,求出在各家银行托管的资产总量最高的客户。
其实accounts可以用一个二维数组来表示,每个客户在多家银行存的资产就是内嵌数组的每个元素。要计算出每个人的总资产,就需要对这个数组进行遍历,二维数组需要用到双重for循环,遍历到每个客户,再进行计算每个客户的总资产,用result存起来,result也是一个数组,使用Math.max计算出result的最高值,这个就是这些客户中最大的资产了。
AC代码
function solution(arr) {
let result = [];
for(let i=0; i<arr.length; i++) {
let total = 0;
for(let j=0; j<arr[i].length; j++) {
total= total + arr[i][j];
};
result.push(total);
}
console.log(Math.max(...result))
}
let accounts = [[1,5],[7,3],[3,5]];
solution(accounts)