Problem: 1672. 最富有客户的资产总量
思路
这道题还是要用到遍历,我还是小白,只有多刷题,才能有更多的思路遇到这些题时,有很快的解法。这题就是求总的钱数最多的一位数组,而且要想法用一种方法将数组中的数全部加起来,并且在分别在数组中对比找一个最大的数组。
解题方法
双层循环即可。
数组构造的时候必须指定长度,所以先用int[] arr=new int[]创建数组,数组一旦定义,长度不可修改int里面的可以用定义的数组长度,在用循环镶套将这些数组中的数 ,相加得到和,使二维数组变成一维数组,然后后面的运算就变成了单纯的比大小了,最后返回我们想要的最大数组的总数。
总体的重要方法:遍历:计算每位客户在各家银行托管的资产数量之和,通过比较得出值,返回这些资产总量的最大值复杂度。
- 时间复杂度:
O(mn)即两个嵌套遍历,需要两个循环的进行。一个是行,一个是列。
- 空间复杂度:
O(1),最终返回的还是一个max数组,该数组在循环之前就有了。
Code
Java
class Solution { public int maximumWealth(int[][] accounts) { int []arr=new int[accounts.length]; for(int i=0;i<accounts.length;i++) { int money=0; for(int j=0;j<accounts[i].length;j++) { money+=accounts[i][j]; } arr[i]=money; } int max=arr[0]; for(int i = 1;i <arr.length;i++) { if(max<arr[i]) { int temp=arr[i]; arr[i]=temp; max=temp; } } return max; } }
编译结果:用例的结果都通过了。