Skip to content

Commit 75ea680

Browse files
committed
Add Fibonacci and Knapsack java code in DP folder
1 parent 72d9d2f commit 75ea680

File tree

2 files changed

+64
-0
lines changed

2 files changed

+64
-0
lines changed

DP/Fibonacci/FiboDP.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class FiboDP{
2+
3+
int lookup[] = new int[100];
4+
5+
void init(){
6+
for(int i = 0; i< 100; i++){
7+
lookup[i] = -1;
8+
}
9+
}
10+
11+
int fibo(int n){
12+
if(lookup[n]==-1){
13+
if(n<=1){
14+
lookup[n]=n;
15+
}else{
16+
lookup[n] = fibo(n-1)+fibo(n-2);
17+
}
18+
}
19+
return lookup[n];
20+
}
21+
public static void main(String[] args) {
22+
FiboDP fb = new FiboDP();
23+
fb.init();
24+
System.out.println(fb.fibo(30));
25+
}
26+
}

DP/Knapsack/Knapsack.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
class Knapsack
2+
{
3+
4+
// A function that returns maximum of two integers
5+
static int max(int a, int b) { return (a > b)? a : b; }
6+
7+
// Returns maximum value that can be put in a knapsack of capacity W
8+
static int knapSack(int W, int wt[], int val[], int n)
9+
{
10+
int i, w;
11+
int K[][] = new int[n+1][W+1];
12+
13+
for (i = 0; i <= n; i++)
14+
{
15+
for (w = 0; w <= W; w++)
16+
{
17+
if (i==0 || w==0)
18+
K[i][w] = 0;
19+
else if (wt[i-1] <= w)
20+
K[i][w] = max(val[i-1] + K[i-1][w-wt[i-1]], K[i-1][w]);
21+
else
22+
K[i][w] = K[i-1][w];
23+
}
24+
}
25+
26+
return K[n][W];
27+
}
28+
29+
30+
public static void main(String args[])
31+
{
32+
int val[] = new int[]{70, 80, 100};
33+
int wt[] = new int[]{20, 25, 30};
34+
int W = 50;
35+
int n = val.length;
36+
System.out.println(knapSack(W, wt, val, n));
37+
}
38+
}

0 commit comments

Comments
 (0)