From 3dce58ee00e04d97baf51a75795f05791bb674d1 Mon Sep 17 00:00:00 2001 From: Al -Hussain Shaikh <116242196+alhussain-shaikh@users.noreply.github.com> Date: Sun, 22 Oct 2023 13:27:13 +0530 Subject: [PATCH] Create Knapsack.js Added Knapsack Problem --- Dynamic-Programming/Knapsack.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 Dynamic-Programming/Knapsack.js diff --git a/Dynamic-Programming/Knapsack.js b/Dynamic-Programming/Knapsack.js new file mode 100644 index 0000000000..8900b483ba --- /dev/null +++ b/Dynamic-Programming/Knapsack.js @@ -0,0 +1,18 @@ + +function knapSack(capacity, weights, values, n) { + let i, w; + let K = Array(n+1).fill().map(() => Array(capacity+1).fill(0)); + + // Build table K[][] in bottom up manner + for (i = 0; i <= n; i++) { + for (w = 0; w <= capacity; w++) { + if (i==0 || w==0) + K[i][w] = 0; + else if (weights[i-1] <= w) + K[i][w] = Math.max(values[i-1] + K[i-1][w-weights[i-1]], K[i-1][w]); + else + K[i][w] = K[i-1][w]; + } + } + return K[n][capacity]; +}