数组 
      
    
      
      
      
        矩阵 
      
    
   
  
    
      
       
     
  
  
    
      
    
    
      
       
     
  
    
题目描述 
给你一个 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 
 
解法 
方法一:求和 
我们遍历 accounts,求出每一行的和的最大值即可。
时间复杂度 \(O(m \times n)\) ,其中 \(m\)  和 \(n\)  分别为网格的行数和列数。空间复杂度 \(O(1)\) 。
Python3 Java C++ Go TypeScript Rust PHP C Kotlin 
class   Solution : 
    def   maximumWealth ( self ,  accounts :  List [ List [ int ]])  ->  int : 
        return  max ( sum ( v )  for  v  in  accounts ) 
 
 
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
10 
11 
12 
13 
14 class  Solution   { 
     public   int   maximumWealth ( int [][]   accounts )   { 
         int   ans   =   0 ; 
         for   ( var   e   :   accounts )   { 
             // int s = Arrays.stream(e).sum(); 
             int   s   =   0 ; 
             for   ( int   v   :   e )   { 
                 s   +=   v ; 
             } 
             ans   =   Math . max ( ans ,   s ); 
         } 
         return   ans ; 
     } 
} 
 
 
class   Solution   { 
public : 
     int   maximumWealth ( vector < vector < int >>&   accounts )   { 
         int   ans   =   0 ; 
         for   ( auto &   v   :   accounts )   { 
             ans   =   max ( ans ,   accumulate ( v . begin (),   v . end (),   0 )); 
         } 
         return   ans ; 
     } 
}; 
 
 
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
10 
11 
12 
13 func   maximumWealth ( accounts   [][] int )   int   { 
     ans   :=   0 
     for   _ ,   e   :=   range   accounts   { 
         s   :=   0 
         for   _ ,   v   :=   range   e   { 
             s   +=   v 
         } 
         if   ans   <   s   { 
             ans   =   s 
         } 
     } 
     return   ans 
} 
 
 
function   maximumWealth ( accounts :   number [][]) :   number   { 
     return   accounts . reduce ( 
         ( r ,   v )   => 
             Math . max ( 
                 r , 
                 v . reduce (( r ,   v )   =>   r   +   v ), 
             ), 
         0 , 
     ); 
} 
 
 
impl   Solution   { 
     pub   fn   maximum_wealth ( accounts :   Vec < Vec < i32 >> )   ->   i32   { 
         accounts . iter (). map ( | v |   v . iter (). sum ()). max (). unwrap () 
     } 
} 
 
 
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 class  Solution  { 
    /** 
     * @param Integer[][] $accounts 
     * @return Integer 
     */ 
    function  maximumWealth ( $accounts )  { 
        $rs  =  0 ; 
        for  ( $i  =  0 ;  $i  <  count ( $accounts );  $i ++ )  { 
            $sum  =  0 ; 
            for  ( $j  =  0 ;  $j  <  count ( $accounts [ $i ]);  $j ++ )  { 
                $sum  +=  $accounts [ $i ][ $j ]; 
            } 
            if  ( $sum  >  $rs )  { 
                $rs  =  $sum ; 
            } 
        } 
        return  $rs ; 
    } 
} 
 
 
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
10 
11 
12 
13 #define max(a, b) (((a) > (b)) ? (a) : (b)) 
int   maximumWealth ( int **   accounts ,   int   accountsSize ,   int *   accountsColSize )   { 
     int   ans   =   INT_MIN ; 
     for   ( int   i   =   0 ;   i   <   accountsSize ;   i ++ )   { 
         int   sum   =   0 ; 
         for   ( int   j   =   0 ;   j   <   accountsColSize [ i ];   j ++ )   { 
             sum   +=   accounts [ i ][ j ]; 
         } 
         ans   =   max ( ans ,   sum ); 
     } 
     return   ans ; 
} 
 
 
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
10 
11 
12 class   Solution   { 
     fun   maximumWealth ( accounts :   Array < IntArray > ):   Int   { 
         var   max   =   0 
         for   ( account   in   accounts )   { 
             val   sum   =   account . sum () 
             if   ( sum   >   max )   { 
                 max   =   sum 
             } 
         } 
         return   max 
     } 
}