【发布时间】:2018-04-12 03:45:22
【问题描述】:
我正在关注link 为子集问题编写 DP 解决方案。
def subsetSum(input, target):
row, col = len(input)+1, target+1
db = [[False] * col] * row
for i in range(row):
db[i][0] = True
for i in range(1, row):
for j in range(1, col):
db[i][j]=db[i-1][j]
if db[i][j]==False and j>=input[i-1]:
db[i][j] = db[i-1][j-input[i-1]]
return db[i][j]
target = 5
input = [1,3,9,2]
subsetSum(input, target)
有趣的是,在“j”的每次迭代之后,db[i-1](我们引用值的前一行)也得到了更新。我真的迷失了这里发生的事情。请提出建议。
请找到此link 以获取打印的报表。
【问题讨论】:
标签: python python-3.x dynamic-programming backtracking