class Bag01:
def knapsack01(self,w,v,C):
n=len(w)
return self.bestvalue(w,v,n-1,C)
def bestvalue(self,w,v,index,c):
if index<0 or c<=0:
return 0
print(index,c)
res=self.bestvalue(w,v,index-1,c)
if c>=w[index]:
res=max(res,v[index]+self.bestvalue(w,v,index-1,c-w[index]))
return res
w=[1,2,3]
v=[6,10,12]
a=Bag01()
print(a.knapsack01(w,v,5))
老师您看一下我这个代码,用动态规划的方法解释重叠子问题我理解,但是用普通的递归法,我将您举的例子的递归过程打印了一下,并没有发现重复的(index,c)数据对,我想问的是,对于这种递归解法,重叠子问题体现在哪里呢
登录后可查看更多问答,登录/注册