1265:【例9.9】最长公共子序列 LCS 朴素做法O(n*2)
分析
- 最长公共子序列的模板题,参考视频:最长公共子序列 - 动态规划;
- 如果第一个序列的第i个字符,与第二个序列的第j个字符相等时,则i,j这个点的dp值为左上角的dp值+1;否则为,该点上面那个点和左面那个点其中的最大值。由于i,j从1开始遍历的,所以在比较字符的时候,要注意为-1;
状态转移方程:if a[i-1]==b[j-1]:dp[i][j]=dp[i-1][j-1]+1
else:dp[i][j]=max(dp[i-1][j],dp[i][j-1]) - 要明白子序列和子串的区别:子串中字符的位置必须是连续的,子序列则可以不必连续。
- 由于此题的数据范围比较小,n方的复杂度可以过,但是遇到数据量比较大的时候,时间和空间复杂度都不符合要求,这个等下期更新优化的解法;
#include "bits/stdc++.h"
using namespace std;int dp[1010][1010];int main() {string a, b;cin >> a >> b;for (int i = 1; i <= a.size(); ++i) {for (int j = 1; j <= b.size(); ++j) {if (a[i - 1] == b[j - 1])dp[i][j] = dp[i - 1][j - 1] + 1;elsedp[i][j] = max(dp[i][j - 1], dp[i - 1][j]);}}cout << dp[a.size()][b.size()];return 0;
}
1265:【例9.9】最长公共子序列 LCS 朴素做法O(n*2)相关推荐
- 最长公共子序列 (LCS) 详解+例题模板(全)
欢迎访问https://blog.csdn.net/lxt_Lucia-- 宇宙第一小仙女\(^o^)/-萌量爆表求带飞=≡Σ((( つ^o^)つ~ dalao们点个关注呗- ------------ ...
- 动态规划算法解最长公共子序列LCS问题
动态规划算法解LCS问题 作者 July 二零一零年十二月三十一日 本文参考:微软面试100题系列V0.1版第19.56题.算法导论.维基百科. 第一部分.什么是动态规划算法 ok,咱们先来了解下什么 ...
- 动态规划之最长公共子序列(LCS)
最长公共子序列(LCS,Longest Common Subsequence).其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最 ...
- 程序员编程艺术第十一章:最长公共子序列(LCS)问题
程序员编程艺术第十一章:最长公共子序列(LCS)问题 0.前言 程序员编程艺术系列重新开始创作了(前十章,请参考程序员编程艺术第一~十章集锦与总结).回顾之前的前十章,有些代码是值得商榷的,因当时的代 ...
- 算法之最长公共子序列(LCS)问题
算法课上老师留的作业,最长公共子序列LCS(Longest Common Subsequence)问题,首先看到这个问题感觉有点复杂,和最长公共子串不同,公共子序列并不要求元素相邻,看起来只有穷举才能 ...
- 最长公共子序列php,动态规划(最长公共子序列LCS)
概念 求解决策过程最优化的结果 (可能有多个) 把多阶段过程转化为一系列单阶段过程,利用各阶段之间的关系,逐个求解 计算过程中会把结果都记录下,最终结果在记录中找到. 举例 求两个字符串的最长公共子序 ...
- python实现求解最长公共子序列LCS问题
在实现论文<Automatically Generating Models for Botnet Detection>论文的算法中,用到了一个The longest commom subs ...
- 算法导论-----最长公共子序列LCS(动态规划)
目录 一.概念梳理 二.最长公共子序列解决方案 方案1:蛮力搜索策略 方案2:动态规划策略 三.C代码实现 实现1 实现2(空间优化) 一.概念梳理 1. 子序列(subsequence): 一个 ...
- 动态规划表格法解决最长公共子序列(LCS)问题
3.5 最长公共子序列(LCS) 前言:图片是博主自己画的,转载请注明出处哦 3.5.1 问题描述 最长公共子序列(Longest Common Subseuence,LCS)问题:给定两个字符串,求 ...
最新文章
- Android Handler 异步消息处理机制的妙用 创建强大的图片载入类
- http get请求相同的key_B站微服务框架Kratos详细教程(2)HTTP服务
- 深度学习要点———神经网络的类型
- linux shell sed awk 命令(2)-awk
- 合并odex和少dex的apk为完整的apk文件
- 在参数上使用@Param(“paramName”)注解”解决了传多个参数的问题
- python哪个方向工资高_Python薪资最高的是一线城市,竟然平均月薪高达20k!
- Sedawk笔记之awk篇:快速了解Awk(三)
- android 下滑,Android实现下滑和上滑事件
- python制作考试系统_Python系统学习 - Pytest单元测试框架
- JSON为什么那样红(另有洞天)
- 约瑟夫问题的几种实现
- php前后端分离两个域名访问,Laravel 5.4前后台分离,通过不同的二级域名访问方法...
- Verilog 初学笔记--顺序操作 和 并行操作的一点思考(参考黑金教程:Verilog HDL那些事 建模篇)...
- RESTful风格编程
- 程序员如何切入区块链去中心化应用开发 1
- redis缓存数据库技术
- 关于在联想电脑管家更新网卡驱动后无法显示可用网络wifi的问题!
- Exception | This means that said other beans do not use the final version of the bean. This is often
- 导致Android手机崩溃的壁纸,一张壁纸导致安卓手机崩溃作者首发声:绝非故意...