Skip to content

Commit 15d93ae

Browse files
vaibhav4595jainaman224
authored andcommitted
Memory optimised function for Knapsack added (jainaman224#254)
1 parent 97c2a33 commit 15d93ae

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

Knapsack/Knapsack_DP.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,30 @@ int knapSack(int K, int wt[], int P[], int n) // Returns the maxim
3939
return DP[n][K];
4040
}
4141

42+
int knapSack_large(int K, int wt[], int P[], int n)
43+
{
44+
int i, w;
45+
int DP[2][K + 1];
46+
47+
for(i = 1; i <= K; i++)
48+
DP[0][i] = 0;
49+
DP[0][0] = 0;
50+
DP[1][0] = 0;
51+
52+
for(i = 1; i <= n; i++)
53+
{
54+
for(w = 1; w <= K; w++)
55+
{
56+
if(wt[i - 1] <= w)
57+
DP[i & 1][w] = max(P[i - 1] + DP[!(i & 1)][w - wt[i - 1]], DP[!(i & 1)][w]);
58+
else
59+
DP[i & 1][w] = DP[!(i & 1)][w];
60+
}
61+
}
62+
63+
return DP[n & 1][K];
64+
}
65+
4266
int main()
4367
{
4468
int P[] = {11, 22, 33, 44, 55};
@@ -48,6 +72,7 @@ int main()
4872

4973
cout << knapSack(K, wt, P, n);
5074

75+
cout << endl << "Memory Optimised KnapSack " << knapSack_large(K, wt, P, n);
5176
return 0;
5277
}
5378

0 commit comments

Comments
 (0)