首页 > 技术文章 > 0-1背包问题python解决

timleee 2016-11-21 19:58 原文

def f(i,j):
while i>=0:
if i==0 and j>=l[i][0]:
return l[i][1]
elif i==0 and j<l[i][0]:
return 0
else:
return max(f(i-1,j-l[i][0])+l[i][1],f(i-1,j))
i = int(input()) # 编号
j = int(input()) # 总承重
l = []
for item in range(i):
str_in = input("please input your list:")
num = [int(n) for n in str_in.split()] # 第一个数字是重量;第二个是价值
l.append(num)
a=f(i,j)
print(a)
运行不了;

推荐阅读