【发布时间】:2018-09-30 08:18:10
【问题描述】:
我正在尝试在 Python by refering the video here 中实现最长递增子序列。
我认为我做得对。代码的空运行对我来说也很好。但是输出不正确。
d = [3, 2, 6, 4, 5, 1]
l = []
l.append([d[0]])
for i in range(1, len(d)):
l.append([])
for j in range(0, i):
if d[j] < d[i] and len(l[i]) < len(l[j]) + 1:
l[i] = l[j]
l[i].append(d[i])
print(l)
预期输出:[[3], [2], [2, 6], [2, 4], [2, 4, 5], [1]]
实际输出:[[3], [2, 6, 4, 5], [2, 6, 4, 5], [2, 6, 4, 5], [2, 6, 4, 5], [1]]
任何帮助将不胜感激!
【问题讨论】:
-
预期的输出是什么,你得到的输出是什么?
-
我的错。应该提到这一点。已编辑问题。
-
为什么
[3, 6]、[3, 4]、[3, 5]、[3, 4, 5]、[2, 5]和[4, 5]不在您的预期输出中? -
动态规划新手。链接说:L[i] 包含以 D[i] 结尾的最长递增子序列
-
@blhsing 阅读网站上的定义。 LIS 搜索以 D[i] 值结尾的最长升序子序列
标签: python python-3.x dynamic-programming