Skip to content

Commit c1dc342

Browse files
committed
DP-I : Started!
1 parent f2ca400 commit c1dc342

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package dynamicProgramming1;
2+
3+
import java.util.Arrays;
4+
import java.util.Scanner;
5+
6+
public class FibonacciNumber {
7+
/*
8+
* Memoization = Applying Recursion + Storing somewhere
9+
* */
10+
private static int fibonacci(int n, int[] dp) {
11+
if (n == 0 || n == 1)
12+
return n;
13+
14+
int ans1, ans2;
15+
if (dp[n - 1] == -1) {
16+
ans1 = fibonacci(n - 1, dp);
17+
dp[n - 1] = ans1;
18+
} else {
19+
ans1 = dp[n - 1];
20+
}
21+
22+
if (dp[n - 2] == -1) {
23+
ans2 = fibonacci(n - 2, dp);
24+
dp[n - 2] = ans2;
25+
} else {
26+
ans2 = dp[n - 2];
27+
}
28+
29+
return ans1 + ans2;
30+
}
31+
32+
public static void main(String[] args) {
33+
Scanner scan = new Scanner(System.in);
34+
int n = scan.nextInt();
35+
int[] dp = new int[n + 1];
36+
Arrays.fill(dp, -1); // Filling arrays element with -1
37+
int answer = fibonacci(n, dp);
38+
System.out.println(answer);
39+
}
40+
}

0 commit comments

Comments
 (0)