天天看點

Leetcode每日一題 - 最富有客戶的資産總量

題目:

給你一個 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

提示:

m == accounts.length

n == accounts[i].length

1 <= m, n <= 50

1 <= accounts[i][j] <= 100

思路:将accounts内的每一個數組周遊相加,再比較得出最大

C語言:

int maximumWealth(int** accounts, int accountsSize, int* accountsColSize)
{
    int i, j, max = 0;
    int sum[50] = {0};
    for(i=0;i<accountsSize;i++)
        for(j=0;j<* accountsColSize;j++)
            sum[i] += accounts[i][j];
    for(i=0;i<accountsSize;i++)
        if(max < sum[i])
            max = sum[i];
    return max;
}
           

執行用時:8 ms,記憶體消耗:6.3 MB.

Python3:

class Solution:
    def maximumWealth(self, accounts: List[List[int]]) -> int:
        m = 0
        for i in accounts:
            if m < sum(i):
                m = sum(i)
        return m
           

執行用時:36 ms,記憶體消耗:14.6 MB.