首页 > 编程知识 正文

python内置的序列数据类型,最长递增子序列 python

时间:2023-05-04 11:01:29 阅读:32915 作者:3353

http://www.Sina.com/http://www.Sina.com /

如果L=a1、a2、an是n个不同实数的数组,则l的增量部分序列是这样的部分序列Lin=aK1、ak2、akm。 其中,k1k2…km且aK1ak2…akm。 求出最大的m值。

http://www.Sina.com/http://www.Sina.com /

假设序列X=b1、b2、…、bn是对序列L=a1、a2、…、an按升序排序的序列。 很明显,x和l的最长共同部分序列是l的最长增加部分序列。 这样,将求出最长的增加部分列的问题变换为求出最长的共同部分列的问题LCS。

最长公共子串问题可以用动态规划的算法求解。 设Li=a1、a2、…、ai、Xj=b1、b2、…、bj,分别为l和x的部分系列。 将C[i,j]作为Li和Xj的最长公共子串的长度。 有以下递归方程。

这可以用时间复杂度为o(n2 )的算法求解,但该算法在课堂上讲过,具体代码在此省略。 求最长增加子序列的算法的时间复杂度是用于排序的o[nlogn]的时间加上求LCS的O(n2的时间,算法的最差时间复杂度为o[nlogn] o[n2]=o[n2]

下一个才是我自己的代码(第一个解法)。

结果:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。