diff --git a/code_to_optimize/java/src/main/java/com/example/Algorithms.java b/code_to_optimize/java/src/main/java/com/example/Algorithms.java index bc976d3c3..9ab663d87 100644 --- a/code_to_optimize/java/src/main/java/com/example/Algorithms.java +++ b/code_to_optimize/java/src/main/java/com/example/Algorithms.java @@ -18,7 +18,15 @@ public long fibonacci(int n) { if (n <= 1) { return n; } - return fibonacci(n - 1) + fibonacci(n - 2); + // Iterative O(n) computation to avoid exponential recursion and reduce memory usage. + long prev = 0L; + long curr = 1L; + for (int i = 2; i <= n; i++) { + long next = prev + curr; + prev = curr; + curr = next; + } + return curr; } /**