# 题目
给你一个 m x n 的整数网格 accounts ,其中 accounts [i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。
客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。
# 自己解题
这个很简单,使用 reduce
就可以,在循环中逐一比对.
function maximumWealth(accounts: number[][]): number { | |
let max = 0; | |
for(let item of accounts){ | |
let num = item.reduce((total,v)=>total + v); | |
if(num > max){ | |
max = num; | |
} | |
} | |
return max; | |
} |
执行用时: 64 ms , 在所有 TypeScript 提交中击败了 77.67% 的用户
# 学习解法
看过网友们的解法,有一个竟然一行就解决了,值得学习一下,这里使用了 map
, reduce
, Math.max.apply
function maximumWealth(accounts: number[][]): number { | |
return Math.max.apply(this,accounts.map(account=>account.reduce((v1,v2)=>v1+v2))); | |
} |
提交之后,执行用时: 64 ms , 在所有 TypeScript 提交中击败了 77.67% 的用户
性能相差不多.