0%

Richest Customer Wealth - LeetCode

題目連結

1672.Richest Customer Wealth

題目描述

你會獲得一個帳號中的內有數筆金額是各客戶在銀行的財富,客戶的財富是其銀行中所有資產的累加,請計算最富有的客戶財富。

範例

1
2
3
4
5
6
7
<範例一>
輸入:accounts = [[1,2,3],[3,2,1]]
輸出:6
解釋:
第一位客戶的財富 = 1 + 2 + 3 = 6
第二位客戶的財富 = 3 + 2 + 1 = 6
兩為客戶的財富都是 6,都被認為是最富有的,所以輸出值為 6。
1
2
3
4
5
6
7
8
<範例二>
輸入:accounts = [[1,5],[7,3],[3,5]]
輸出:10
解釋:
第一位客戶的財富 = 6
第二位客戶的財富 = 10
第三位客戶的財富 = 8
第二位客戶是最富有的人擁有 10 的財富。
1
2
3
4
5
6
7
8
<範例三>
輸入:accounts = [[2,8,7],[7,1,3],[1,9,5]]
輸出:7
解釋:
第一位客戶的財富 = 17
第二位客戶的財富 = 11
第三位客戶的財富 = 15
第一位客戶是最富有的人擁有 17 的財富。

運用知識點

知識點 使用說明
Array.prototype.forEach() 取出陣列中的數值
Math.max() 取得陣列中最大值

解題流程

使用範例三作為解題範例。

step1:使用 forEach 取出陣列中的值。

1
2
3
4
5
var maximumWealth = function (accounts) {
accounts.forEach(function(item){
console.log(item); //[2,8,7],[7,1,3],[1,9,5]
});
};

step2:使用 forEach 取出內層陣列中的數值。

1
2
3
4
5
6
7
var maximumWealth = function (accounts) {
accounts.forEach(function(item){
item.forEach(function(num){
console.log(num); //2,8,7,7,1,3,1,9,5
})
});
};

step3:宣告一個變數 total 先給予值為0,將變數 total 與變數 num 加總取得內層列數值總和。

1
2
3
4
5
6
7
8
9
var maximumWealth = function (accounts) {
accounts.forEach(function(item){
let total=0;
item.forEach(function(num){
total+=num;
})
console.log(total);//17,11,15
});
};

step4:宣告一個變數 totalAry 先給予值為空陣列[],將內層列數值總和依序放入totalAry 內。

1
2
3
4
5
6
7
8
9
10
11
var maximumWealth = function (accounts) {
let totalAry=[];
accounts.forEach(function(item){
let total=0;
item.forEach(function(num){
total+=num;
})
totalAry.push(total);
});
console.log(totalAry);//[17,11,15]
};

step5:使用陣列取得最大值方法 Math.max,取出 totalAry 陣列中最大值並回傳。

1
2
3
4
5
6
7
8
9
10
11
12
var maximumWealth = function (accounts) {
let totalAry=[];
accounts.forEach(function(item){
let total=0;
item.forEach(function(num){
total+=num;
})
totalAry.push(total);
});
return Math.max(...totalAry);
};
console.log(maximumWealth([[2, 8, 7],[7, 1, 3],[1, 9, 5]]));//17

Codepen