分词和排列之间的时间复杂度差异

时间:2018-12-06 05:48:31

标签: java string performance dynamic combinations

Word Break - Recurrence

以上文章中的解释是有道理的。但是为什么不能是T(n)= nT(n-1)+ 1?结果为n!。我在做什么错了?

这与置换递归Permutation - recursion

有何不同?

1 个答案:

答案 0 :(得分:1)

区别在于,在Permutation中,我们有一个a,b,c,d的序列,第一步,我们可以选择所有的序列,从而使第一步具有n可能性。此后,在第二步中,每个第一步仍然有n-1个可能性。因此,我们有了n*(n-1)...

Word Break中的whileas,在链接中令人难过,免得我们有一个abcd的序列,并且有一个单词列表a,b,c,d,ab,ac,ad,bc,bd,cd,...。第一步,我们还有n个选择:a,ab,abc,abcd。但是在那之后,我们没有为每个第一步选择n-1。例如,如果我们选择abcd作为第一步,那么我们根本就没有第二步。