沈阳建设网站,宝塔怎么做两个网站,北京做网站公司有哪些,个人免费网站申请没有白走的路#xff0c;每一步都算数#x1f388;#x1f388;#x1f388; 题目描述#xff1a;
已知有两个数组a,b。已知每个数组的长度。要求求出两个数组的最长公共子序列
序列 1 2 3 4 5 序列 2 3 2 1 4 5
子序列#xff1a;从其中抽掉某个或多个元素而产生的新… 没有白走的路每一步都算数 题目描述
已知有两个数组a,b。已知每个数组的长度。要求求出两个数组的最长公共子序列
序列 1 2 3 4 5 序列 2 3 2 1 4 5
子序列从其中抽掉某个或多个元素而产生的新序列。其中子序列可以和本身一样
这里1 2 3 4 5的子序列挺多,总共有这么多个 同理 2 3 2 1 4 5的子序列也有很多但是应该比下面的要少因为出现重复的元素 公共子序列即两个序列中共有的部分
长度为1的1 2 3 4 5
部分长度为2的 23
部分长度为3的 234
长度为4的2345
最长公共子序列最长的公共子序列
2 3 4 5
输入描述
第一行
输入NM表示两个数组的长度
第二行
数组a中的元素
第三行
数组b中的元素
输出描述
输出两个数组的最长公共子序列的长度
样例输入输出
样例输入:
5 6
1 2 3 4 5
2 3 2 1 4 5
样例输出
4
算法分析
import os
import sys
n,m map(int,input().split())
a [0][int(i) for i in input().split()]
b [0][int(i) for i in input().split()]
dp [[0]*(m1) for i in range(n1)]
for i in range(1,n1):for j in range(1,m1):if a[i] b[j]:dp[i][j] dp[i-1][j-1]1else:dp[i][j] max(dp[i-1][j],dp[i][j-1])
print(dp[n][m]) 每日一句
摘自《三体》
生存在宇宙中本身就是一件很幸运的事情但是不知道什么时候起你们有了这样一种幻想认为生存是唾手可得的这就是你们失败因的根本原。