Unbounded Knapsack
Problem Link: https://practice.geeksforgeeks.org/problems/knapsack-with-duplicate-items4201/1
class Solution:
def knapSack(self, n, W, val, wt):
# code here
dp=[[0 for i in range(W+1)] for j in range(n+1)]
for i in range(n+1):
for j in range(W+1):
if(i==0 or j==0):
dp[i][j]=0
else:
if(wt[i-1]<=j):
inc=val[i-1]+dp[i][j-wt[i-1]]
exc=dp[i-1][j]
dp[i][j]=max(inc,exc)
else:
exc=dp[i-1][j]
dp[i][j]=exc
return dp[n][W]
Last updated