当前位置: 首页 > news >正文

leetCode 1143.最长公共子序列 动态规划 + 图解

此题我的往期文章推荐:

leetCode 1143.最长公共子序列 动态规划 + 滚动数组-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_41987016/article/details/133689692?spm=1001.2014.3001.5501leetCode 1143.最长公共子序列 一步步思考动态规划 + 优化空间复杂度_呵呵哒( ̄▽ ̄)"的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_41987016/article/details/133702506?spm=1001.2014.3001.5501

 (1)S1 和 S2末尾字符相同时,那就在 S1前 i-1个字符S2前 j-1个字符LCS基础上再加1

 (2)S1 和 S2末尾字符不相同时,两种选择方案:

  • 把S1的末尾字符抛弃掉,计算S1前 i-1个字符S2前 j 个字符 LCS
  • 把S2的末尾字符抛弃掉,计算S1前 i个字符S2前 j-1 个字符 LCS

比较这两个LCS谁最大,就选最大的LCS为最优解 

  •  dp[0][0] 表示 S1 0 个字符 与 S2 0 个字符的 LCS = 0
  •  dp[i][0] 表示 S1 个字符 与 S2 0 个字符的 LCS = 0
  •  dp[0][j] 表示 S1 0 个字符 与 S2 j 个字符的 LCS = 0

  • S1:A B C B D A B
  • S2:B D C A B C

我们可以从这张表格可以得到的信息,S1 与 S2 的 最长公共子序列长度为 4且最长公共子序列有"BCAB" 和 "BDAB",如下验证:

① 最长公共子序列有"BCAB"

  • S1:A B C B D A B
  • S2:B D C A B C

② 最长公共子序列有"BDAB"

  • S1:A B C B D A B
  • S2:B D C A B C

伪代码:

可以在力扣运行的代码我在这往期文章里已经写了,大家可以移步去看!!!文章链接在此文的首行~

参考B站up主邋遢大哥233做的课堂笔记:

[轻松掌握动态规划]5.最长公共子序列 LCS_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1ey4y1d7oD/?spm_id_from=333.999.0.0&vd_source=a934d7fc6f47698a29dac90a922ba5a3来自up主邋遢大哥233的课堂截图:

http://www.lryc.cn/news/193343.html

相关文章:

  • 解密人工智能:KNN | K-均值 | 降维算法 | 梯度Boosting算法 | AdaBoosting算法
  • Python深度学习实践
  • VS2017+QT+PCL环境配置
  • 207、SpringBoot 整合 RabbitMQ 实现消息的发送 与 接收(监听器)
  • 想要精通算法和SQL的成长之路 - 滑动窗口和大小根堆
  • Python算法练习 10.15
  • 智能防眩目前照灯系统控制器ADB
  • 若依 ruoyi 路径 地址 # 井号去除
  • Elasticsearch 和 Arduino:一起变得更好!
  • 基于Ubuntu环境Git 服务器搭建及使用
  • 【quartus13.1/Verilog】swjtu西南交大:计组课程设计
  • 基于springboot的网上点餐系统论文开题报告
  • Hadoop3教程(九):MapReduce框架原理概述
  • 使用PyTorch加载数据集:简单指南
  • 【考研数学】线性代数第六章 —— 二次型(2,基本定理及二次型标准化方法)
  • Raven2靶机渗透
  • UE5中双pass解决半透明材质乱序问题
  • Cisdem Video Player for mac(高清视频播放器) v5.6.0中文版
  • 数据库管理-第109期 19c OCM考后感(20231015)
  • 初出茅庐的小李博客之SPI工作模式
  • SpringCloud-Bus
  • Adobe2024 全家桶更新了,PS、Ai、AE、PR应用尽有
  • 【斗破年番】彩鳞换装美翻,雁落天惨死,萧炎暗杀慕兰三老遇险,彩鳞霸气护夫
  • 华为端到端战略管理体系(DSTE开发战略到执行)的运作日历图/逻辑图及DSTE三大子流程介绍
  • Linux友人帐之调试器--gdb的使用
  • antd pro form 数组套数组 form数组动态赋值 shouldUpdate 使用
  • 动态规划:918. 环形子数组的最大和
  • 毅速丨模具3D打印材料有哪些选择
  • Springcloud笔记(1)-微服务和springcloud介绍
  • 十六、代码校验(4)