给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。
例子
输入:accounts = [[1,2,3],[3,2,1]]
输出:6
解释:
第 1 位客户的资产总量 = 1 + 2 + 3 = 6
第 2 位客户的资产总量 = 3 + 2 + 1 = 6
两位客户都是最富有的,资产总量都是 6 ,所以返回 6
输入:accounts = [[1,5],[7,3],[3,5]]
输出:10
解释:
第 1 位客户的资产总量 = 6
第 2 位客户的资产总量 = 10
第 3 位客户的资产总量 = 8
第 2 位客户是最富有的,资产总量是 10
这道算法题相对来说不难, 也好理解
双循环
双循环, 1个循环客户, 1个循环资产, 判断最大即可
func maximumWealth(_ accounts: [[Int]]) -> Int {
if accounts.count == 0 { return 0 }
var max = calMax(accounts[0])
for i in accounts {
max = calMax(i) > max ? calMax(i) : max
}
return max;
}
func calMax(_ send: [Int]) -> Int {
var sum = 0
for i in send {
sum += I
}
return sum;
}
内置函数
运用swift内置函数map, reduce, max来解决, 一行代码
func maximumWealth(_ accounts: [[Int]]) -> Int {
return accounts.map { $0.reduce(0, +) }.max() ?? 0
}
swift都有对对应函数的解释举例子, control + 点击 就可以看
题目来源:力扣(LeetCode) 感谢力扣爸爸 :)
IOS 算法合集地址