跳至主要內容

1672. 最富有客户的资产总量

ITCharge大约 2 分钟

1672. 最富有客户的资产总量open in new window

  • 标签:数组、矩阵
  • 难度:简单

题目链接

题目大意

描述:给定一个 m×nm \times n 的整数网格 accountsaccounts,其中 accounts[i][j]accounts[i][j] 是第 ii 位客户在第 jj 家银行托管的资产数量。

要求:返回最富有客户所拥有的资产总量。

说明

  • 客户的资产总量:指的是他们在各家银行托管的资产数量之和。
  • 最富有客户:资产总量最大的客户。
  • m==accounts.lengthm == accounts.length
  • n==accounts[i].lengthn == accounts[i].length
  • 1m,n501 \le m, n \le 50
  • 1accounts[i][j]1001 \le accounts[i][j] \le 100

示例

  • 示例 1:
输入:accounts = [[1,2,3],[3,2,1]]
输出:6
解释:
第 1 位客户的资产总量 = 1 + 2 + 3 = 62 位客户的资产总量 = 3 + 2 + 1 = 6
两位客户都是最富有的,资产总量都是 6 ,所以返回 6
  • 示例 2:
输入:accounts = [[1,5],[7,3],[3,5]]
输出:10
解释:
第 1 位客户的资产总量 = 62 位客户的资产总量 = 103 位客户的资产总量 = 82 位客户是最富有的,资产总量是 10,随意返回 10

解题思路

思路 1:直接模拟

  1. 使用变量 maxansmax\underline{}ans 存储最富有客户所拥有的资产总量。
  2. 遍历所有客户,对于当前客户 accounts[i]accounts[i],统计其拥有的资产总量。
  3. 将当前客户的资产总量与 maxansmax\underline{}ans 进行比较,如果大于 maxansmax\underline{}ans,则更新 maxansmax\underline{}ans 的值。
  4. 遍历完所有客户,最终返回 maxansmax\underline{}ans 作为结果。

思路 1:代码

class Solution:
    def maximumWealth(self, accounts: List[List[int]]) -> int:
        max_ans = 0
        for i in range(len(accounts)):
            total = 0
            for j in range(len(accounts[i])):
                total += accounts[i][j]
            if total > max_ans:
                max_ans = total
        return max_ans

思路 1:复杂度分析

  • 时间复杂度O(m×n)O(m \times n)。其中 mmnn 分别为二维数组 accountsaccounts 的行数和列数。两重循环遍历的时间复杂度为 O(mn)O(m * n)
  • 空间复杂度O(1)O(1)