最长递增子序列python_求最长递增子序列并输出序列

最长递增子序列python_求最长递增子序列并输出序列一,    最长递增子序列问题的描述设L=<a1,a2,…,an>是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=<aK1,ak2,…,akm>,其中k1<k2<…<km且aK1<ak2<…<akm。求最大的m值。二,    第一种算法:转化为LCS问题求解设序列X=<b1,b2,…,bn>是对序列L…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

一,    最长递增子序列问题的描述

设L=<a1,a2,…,an>是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=<aK1,ak2,…,akm>,其中k1<k2<…<km且aK1<ak2<…<akm。求最大的m值。

二,    第一种算法:转化为LCS问题求解

设序列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)。

  下面才是我自己的code(第一种解法)

 

最长递增子序列python_求最长递增子序列并输出序列

 

 result:

最长递增子序列python_求最长递增子序列并输出序列

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226913.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 文件句柄数_系统文件句柄

    文件句柄数_系统文件句柄内核参数fs.file-max指定了系统范围内所有进程可打开的文件句柄的数量限制。合理值计算方法:取决于内存,每1M内存可增加100个。默认情况下,不要将超过10%的内存用于文件。将文件句柄数设置太大的危害是,当大量的文件句柄都为sockets时,会占用大量的内存,这些内存都是不可交换的。要记得的是网络套接字连接符也是文件。对于百万级连接数的进程来说,要设置单个进程可打开的文件句柄数为百万个。比如256G内存,应该配置的值为:256*0.1*1024*100=2621440设置方式:vi/et

    2022年10月17日
    0
  • Shift 后门 简单学习

    Shift 后门 简单学习https://www.cnblogs.com/BOHB-yunying/p/11695140.html过程参考上文链接提出问题:整个过程并不复杂,但要实现攻击的前提条件,是已经打入目标主机,将C:\windows\system32\sethc.exe替换成C:\windows\system32\cmd.exe,所以这一步到底要如何做到?明白shift后门是如何产生的就是windows系统自带的5次shift键强制打开C:\windows\system32\sethc.exe,为了..

    2022年9月18日
    0
  • Python脚本语言第一行的写法「建议收藏」

    Python脚本语言第一行的写法「建议收藏」脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python

    2022年7月6日
    32
  • Inside IIS & Asp.Net

    Inside IIS & Asp.Net

    2021年8月10日
    50
  • 在eclipse中没有server(需在选项中设置)

    Eclipse中没有Server选项,需要加载插件。步骤如下:①在软件eclipse下的Help-&gt;InstallNewSoftware-&gt;中,在Workwith中点击Add,如下,加入Name:KeplerLocation:http://download.eclipse.org/releases/kepler②找到选项Web,XML,JavaEEan…

    2022年4月10日
    204
  • 使用Perl读取Excel文件

    使用Perl读取Excel文件

    2021年8月16日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号