From c6d8eb792e3368c36bceff67648fe8cf018ef21b Mon Sep 17 00:00:00 2001 From: Gary Miller Date: Sat, 14 Oct 2023 03:18:35 -0400 Subject: [PATCH] Create FibonacciMemoization.java --- src/java/FibonacciMemoization.java | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/java/FibonacciMemoization.java diff --git a/src/java/FibonacciMemoization.java b/src/java/FibonacciMemoization.java new file mode 100644 index 00000000..b2482cdb --- /dev/null +++ b/src/java/FibonacciMemoization.java @@ -0,0 +1,29 @@ +import java.util.HashMap; + +public class Fibonacci { + + // Create a memoization HashMap to store computed Fibonacci values + private static HashMap memo = new HashMap<>(); + + public static void main(String[] args) { + int n = 16; + System.out.println("Fib(" + n + ") : " + fibonacci(n)); + } + + public static int fibonacci(int n) { + if (n <= 1) { + return 1; + } + + // Check if the value is already computed and stored in the memoization HashMap + if (memo.containsKey(n)) { + return memo.get(n); + } + + // Calculate Fibonacci recursively and store the result in memoization + int result = fibonacci(n - 1) + fibonacci(n - 2); + memo.put(n, result); + + return result; + } +}