要提高JavaScript遞歸函數的效率,您可以嘗試以下方法:
function factorial(n, accumulator = 1) {
if (n === 0) return accumulator;
return factorial(n - 1, n * accumulator);
}
function fibonacci(n, memo = {}) {
if (n <= 1) return n;
if (!memo[n]) memo[n] = fibonacci(n - 1, memo) + fibonacci(n - 2, memo);
return memo[n];
}
function fibonacci(n) {
const dp = [0, 1];
for (let i = 2; i <= n; i++) {
dp[i] = dp[i - 1] + dp[i - 2];
}
return dp[n];
}
function factorial(n) {
let result = 1;
for (let i = 1; i <= n; i++) {
result *= i;
}
return result;
}
請注意,對于某些問題,遞歸可能是最簡單和最直接的方法。在考慮上述優化方法之前,請確保遞歸是解決問題的最佳方法。