[英]How to build a new list of objects, each with a new property, given an initial list of objects in ES6 without loops?
[英]Given a list of transfers between two banks, determine the minimum initial account balance of each bank required for the given transfers to be carried
我有一個我試圖解決的問題。 一些測試用例是成功的,而另一些則不是。
要求:
您將獲得兩個銀行之間的 N 次轉賬(編號從 0 到 N-1)的列表:銀行 A 和銀行 B。第 K 次轉賬由兩個值描述:
所有轉移都按照它們在列表中出現的順序完成。 銀行不想負債(換句話說,他們的賬戶余額可能不會低於 0)。 為了完成轉賬,每家銀行的最低初始賬戶余額是多少?
寫一個函數:
function solution(R, V);
即,給定一個字符串 R 和一個長度為 N 的整數數組 V,返回一個由兩個整數組成的數組。 整數應按以下順序表示銀行 A 和 B 的最小初始賬戶余額:[銀行 A,銀行 B]。
結果數組應作為整數數組返回。
為以下假設編寫一個有效的算法:
我通過了以下測試用例:
我未能通過以下測試用例:
你能告訴我如何復制這些測試用例嗎?
我的測試已經完成,但我很想學習如何復制這些結果。 這不是作業
提前致謝。
function solution(R, V) { let min_A = 0; let min_B = 0; let balance = 0; let arr = []; let final = []; R = R.split(''); for (var i = 0; i < R.length; i++) { arr.push({ receiver: R[i], amount: V[i], }); } arr.map((k) => { if (k.receiver == 'A') { balance += k.amount; min_B = Math.min(-balance, min_B); } else { balance -= k.amount; min_A = Math.min(balance, min_A); } }); final.push(Math.abs(min_A), Math.abs(min_B)); console.log(final); console.log(min_A, min_B); } solution('ABBA', [1, 1, 1, 1]);
據我所知,您的問題源於您如何定義最小值。 您將min_a
和min_b
定義為0
,您應該將它們定義為它們的第一個匹配值(並通過將它們設置為超出其有效范圍的占位符值來做到這一點,以便您可以輕松檢查)。 以下是您應該如何修改代碼:
let min_A = "";
let min_B = "";
...
balance += k.amount;
if (min_B === "") {
min_B = -balance;
} else {
min_B = Math.min(-balance, min_B);
}
...
balance -= k.amount;
if (min_A === "") {
min_A = balance;
} else {
min_A = Math.min(balance, min_A);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.