最富有客户的资产总量

20210119

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

难度简单17

给你一个 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.length
  • n == accounts[i].length
  • 1 <= m, n <= 50
  • 1 <= accounts[i][j] <= 100

通过次数18,432提交次数21,364

 

public class MaxAccounts {

    //自己的写法;
    public int maximumWealth2(int[][] accounts) {
        Map<String, Integer> inMap = new HashMap<>();
        inMap.put("maxNum", 0);
        for (int[] account1 : accounts) {
            int MaxNum = 0;
            for (int i = 0; i < account1.length; i++) {
                MaxNum += account1[i];
            }
            if (MaxNum >= inMap.get("maxNum")) {
                inMap.put("maxNum", MaxNum);
            }
        }
        return inMap.get("maxNum");
    }

    //换一种解法:
    //是一种好思路,不过放到实际问题中去是不太建议改动数组的;
    public int maximumWealth(int[][] accounts) {
        for (int i = 0; i < accounts.length; i++) {
            for (int j = 1; j < accounts[i].length; j++) {
                //上边的j应该=1而不是0,因为下边是+=;等于0的话就会导致多加了一遍accounts[i][0];
                accounts[i][0] += accounts[i][j];
            }
            //注意认识Math.max()这个方法;多好用;
            accounts[0][0] = Math.max(accounts[0][0], accounts[i][0]);
        }
        return accounts[0][0];
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值