经典算法实例:最富有客户的资产总量
我们先来看题目描述给你一个 m x n 的整数网格 accounts 其中 accounts[ i ][ j ] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。客户的资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。示例 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示例 3输入accounts [[2,8,7],[7,1,3],[1,9,5]] 输出17提示m accounts.lengthn accounts[i].length1 m, n 501 accounts[i][j] 100解决方案方法一遍历思路和算法分别计算每位客户在各家银行托管的资产数量之和返回这些资产总量的最大值。代码Python3class Solution: def maximumWealth(self, accounts: List[List[int]]) - int: return max(map(sum, accounts))Javaclass Solution { public int maximumWealth(int[][] accounts) { int maxWealth Integer.MIN_VALUE; for (int[] account : accounts) { maxWealth Math.max(maxWealth, Arrays.stream(account).sum()); } return maxWealth; } }C#public class Solution { public int MaximumWealth(int[][] accounts) { int maxWealth int.MinValue; foreach (int[] account in accounts) { maxWealth Math.Max(maxWealth, account.Sum()); } return maxWealth; } }复杂度分析时间复杂度O(mn) 其中 m 和 n 分别是网格 accounts 的行数和列数。空间复杂度O(1) 。