diff --git a/code_to_optimize_js/fibonacci.js b/code_to_optimize_js/fibonacci.js index b0ab2b51c..05662900e 100644 --- a/code_to_optimize_js/fibonacci.js +++ b/code_to_optimize_js/fibonacci.js @@ -8,11 +8,19 @@ * @param {number} n - The index of the Fibonacci number to calculate * @returns {number} - The nth Fibonacci number */ +const cache = new Map(); + function fibonacci(n) { + if (cache.has(n)) return cache.get(n); if (n <= 1) { + cache.set(n, n); return n; } - return fibonacci(n - 1) + fibonacci(n - 2); + const a = fibonacci(n - 1); + const b = fibonacci(n - 2); + const res = a + b; + cache.set(n, res); + return res; } /**