我目前正在学习算法课程。我在 python 中测试了很多,包括动态编程。这是自下而上的杆切割实现的实现。
由于一个错误,它不起作用。python中是否有全局设置,我可以将默认数组索引更改为1而不是0?或者有人可以为我提供一个更好的策略来克服我遇到一百万次的错误。超级烦人。
def bottom_up_memo_cut_rod(p,n):
r = [ 0 for i in range(n) ]
r[0] = 0
for j in range(n):
q = -1
for i in range(j):
q = max(q, p[i] + r[j-i])
r[j] = q
return r[n]
bottom_up_memo_cut_rod([1,5,8,9], 4)
在这种情况下,答案应该是 10,将 4 切割成 (2,2) 会产生 10 的最高价格。