2
我已經實現了一個遞歸函數來解決在這個geeksforgeeks page上討論的硬幣遊戲問題。我的代碼似乎工作,因爲它記錄從Math.max(coin_l, coin_r)
正確的答案,但在這裏記錄的返回值console.log('input_1 result', maxPoints(input_1));
返回undefined
。不知道發生了什麼事。JavaScript遞歸函數控制檯記錄正確答案但返回undefined
硬幣賽典
var maxPoints = function(coins, i, j) {
if (i === undefined || j === undefined) maxPoints(coins, 0, coins.length - 1);
if (j === i) return coins[i];
if (j === i + 1) return Math.max(coins[i], coins[j]);
var coin_l = coins[i] + Math.min(maxPoints(coins, i + 2, j), maxPoints(coins, i + 1, j - 1));
var coin_r = coins[j] + Math.min(maxPoints(coins, i + 1, j - 1), maxPoints(coins, i, j - 2));
console.log(Math.max(coin_l, coin_r));
return Math.max(coin_l, coin_r);
};
var input_1 = [5, 3, 7, 10];
var input_2 = [8, 15, 3, 7];
var run = function() {
console.log('input_1 result', maxPoints(input_1));
console.log('input_2 result', maxPoints(input_2));
};
run();