【发布时间】:2017-01-15 21:57:41
【问题描述】:
我的迭代DP方案如下:
def permutations(string):
# let n = len(string)
N = [[] for _ in range(len(string) + 1)] # O(n)
N[0].append("")
for i in range(1, len(string) + 1): # O(n)
N[i] = [perm[:j] + string[i - 1] + perm[j:] for j in range(i) for perm in N[i - 1]] # O(???)
return N[-1]
但是,我无法分析上述程序的运行时间。具体来说,限制for perm in N[i - 1] 行的运行时间。我知道递归解决方案是O(n!),但是不知道递归运行时,我们如何才能找到上述程序的运行时呢?
【问题讨论】:
标签: python runtime dynamic-programming