力扣1672.最富有客户的资产数量--刷题笔记

题目:


给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i​​​​​ 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/richest-customer-wealth


解答

解答一:第一眼就想到的解法,遍历加用一个变量实时维护资产最大值。

class Solution {
public:
    int maximumWealth(vector<vector<int>>& accounts) {
        int m=accounts.size();
        //if(m==1) return accumulate(accounts[0].begin(), accounts[0].end(),0);
        int n=accounts[0].size();
        int ans=INT_MIN;
        for(int i=0;i<m;i++)
        {
            int sum_i=0;
            for(int j=0;j<n;j++){
                sum_i+=accounts[i][j];
            }
            if(sum_i>ans){
                ans=sum_i;
            }
        }
        return ans;
    }
};

解答二:用STL,主要是起到练习STL的作用。

1、运用C++ accumulate()函数:accumulate( iterator beg, iterator end, value)。主要作用是累加求和和自定义类型数据的处理。前两个参数指定累加的范围,第三个参数为累加的初值。

2、运用C++ max_element(): std::max_element(iterator start, iterator end, [compare comp])。用于从范围中找出最大的元素,它接受一个容器范围[开始,结束],并返回一个指向给定范围内具有最大值的元素的迭代器

解答:来源力扣官方解答,官方的解答简短精炼。用到了c++新特性 auto。

class Solution {
public:
    int maximumWealth(vector<vector<int>>& accounts) {
        int maxWealth = INT_MIN;
        for (auto &account : accounts) {
            maxWealth = max(maxWealth, accumulate(account.begin(), account.end(), 0));
        }
        return maxWealth;
    }
};

作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/richest-customer-wealth/solution/zui-fu-you-ke-hu-de-zi-chan-zong-liang-b-8p06/
来源:力扣(LeetCode)

解答:用vector和max_element()

class Solution {
public:
    int maximumWealth(vector<vector<int>>& accounts) {
        int m=accounts.size();
        int n=accounts[0].size();
        vector <int> ans(m,0);
        for(int i=0;i<m;i++)
        {
            int temp=0;
            for(int j=0;j<n;j++)
            {
                temp+=accounts[i][j];
            }
            ans.push_back(temp);
        }
        return *max_element(ans.begin(),ans.end());
    }
};

总结:题虽然是简单题,但是可以练习STL,哈哈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值