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

news2025/1/26 19:07:30

此题我的往期文章推荐:

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.coloradmin.cn/o/1094319.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Lua 调试库( debug )

一、调试库作用 使用调试库可以获取 Lua 环境运行过程中的变量和跟踪代码执行。 调试库主要分为两类函数:自省函数和钩子函数 自省函数:允许检查一个正在运行中的程序,例如活动函数的栈、当前正在执行的代码行、局部变量的名称和值。钩子函…

Java多线程悲观锁和乐观锁

悲观锁: 一上来就加锁,没有安全感,每次只能一个线程进入访问完毕后,再解锁。 线程安全,性能较差 乐观锁: 一开始不上锁,认为是没有问题的,大家一起跑,等要出现线程安全问…

SpringBoot--手写组件动态更新@Value的值

原文网址:SpringBoot--手写组件动态更新Value的值_IT利刃出鞘的博客-CSDN博客 简介 本文手写组件,动态更新SpringBoot里Value的值(无需重启服务)。 不是可以用RefreshScope吗?为什么要手写组件? 动态更…

docker数据卷+挂载(命令讲解+示例)

在容器中管理数据主要有两种方式: 数据卷(Volumes) 、挂载主机目录 (Bind mounts)。 一、数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用。 特点: 对 数据卷 的修改会立马生效对 …

动态规划简述;斐波那契数列自顶向下和自底向上

概述 动态规划就是把一个问题分解为若干子问题,把子问题的解累加起来,就是当前问题的值。 斐波那契数列(自顶向下) 一个很好的演示demo, 在进行运算时,要用上备忘录(缓存)&#x…

从硬件结构到软件

先说说体系冯诺依曼的体系结构,有利于我们后面理解操作系统,软件再怎么发展,也必须遵守硬件的规则。 一 五大硬件理解 如下图: 1 为什么要有输入输出设备 很久以前,我们都是把指令打成孔,有孔无孔表示0,1&#xff0c…

柯桥日常口语学习|生活英语|实用口语口语天天练

1. How far is it from here? 离这儿有多远? 2. Can you give me a hand? 能帮帮我吗? 3. I cant lift my right arm. 我无法举起我的右手臂。 4. This bridge was built two years ago. 这座桥是在两年前建造的。 5. You should eat more. 你应该…

Go语言入门心法(一): 基础语法

Go语言入门心法(一) Go语言入门心法(二): 结构体 Go语言入门心法(三): 接口 一: go语言中变量认知 go语言中变量的定义: (要想飞|先会走)||(翻身仗|抹遗憾 ) |(二八定律)(先量变)|(再质变)||&#xf…

vue3实现刻度尺

期望实现效果如下: 一、基本使用 安装slide-ruler,根据文档实现内容 https://github.com/wusb/slide-ruler/blob/master/README-zh_CN.md 二、进一步处理 1、直接复制slide-ruler核心文件,在此基础上进一步处理 处理1:刻度朝向…

思维模型 秩序

本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。秩序是事物正常运行的基石。有序的安排是成功的先决条件。 1 秩序的应用 1.1 秩序在不同科学领域中的应用 物理学和天文学: 物理学家通过研究原子和分子的有序排列来理解物质的…

思维模型 正/反 木桶理论

本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。 1 正/反 木桶理论的应用 1.1 木桶理论的应用 1.1.1 正木桶理论在考试中的应用 小明是一名理科高中生,他在学习过程中发现自己在数理化方面表现较好,但在语文和英…

基于Vue+webpack之H5打包资源优化

前言 基于公司的业务以及今年接触到的项目大部分都是APP混合开发,即原生Android/ios H 5页面开发APP。项目从产品需求的评审到方案的评审再到开发提测...这一套流程下来让我收货颇多。总想找个时间好好记录一番,大概还是自己懒惰了,一直拖到…

【Vue面试题二十二】、什么是虚拟DOM?如何实现一个虚拟DOM?说说你的思路

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:什么是虚拟DOM&#xff…

vim、gcc/g++、make/Makefile、yum、gdb

vim、gcc/g、make/Makefile、yum、gdb 一、Linux编辑器vim1、简介2、三种模式的概念(1)正常/普通/命令模式(Normal mode)(2)插入模式(Insert mode)(3)末行/底行模式(last line mode) 3、三种模式的切换4、正…

langchain 加载各种格式文件读取方法

参考:https://python.langchain.com/docs/modules/data_connection/document_loaders/ https://github.com/thomas-yanxin/LangChain-ChatGLM-Webui/blob/master/app.py 代码 可以支持pdf、md、doc、txt等格式 from langchain.document_loaders import Unstruct…

数据库管理-第109期 19c OCM考后感(20231015)

数据库管理-第109期 19c OCM考后感(202301015) 距离上一篇又过了两周多,为啥又卡了这么久,主要是后面几个问题:1. 9月1日的19c OCM upgrade考试木有过,因为有一次免费补考机会就又预约了10月8日的考试&…

IoT知识点补充

MySQL vs NoSQL数据库(MongoDB) 这里举的例子使用MySQL存储用户信息和博客文章的关系数据,同时使用MongoDB存储博客文章的评论,因为评论可以是不同结构的半结构化数据。 MySQL部分如下 import java.sql.Connection; import jav…

普冉PY32系列(九) GPIO模拟和硬件SPI方式驱动无线收发芯片XL2400

目录 普冉PY32系列(一) PY32F0系列32位Cortex M0 MCU简介普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境普冉PY32系列(三) PY32F002A资源实测 - 这个型号不简单普冉PY32系列(四) PY32F002A/003/030的时钟设置普冉PY32系列(五) 使用JLink RTT代替串口输出日志普冉PY32…

初出茅庐的小李博客之SPI工作模式

SPI的工作模式 SPI(Serial Peripheral Interface)是一种同步串行通信协议,常用于连接微控制器和外围设备。SPI有四种模式,分别是0、1、2、3模式。 0模式:时钟空闲时为低电平,数据在时钟的下降沿采样&#…

Using sunbeam to deploy openstack (by quqi99)

作者:张华 发表于:2023-10-15 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明(http://blog.csdn.net/quqi99) What’s sunbeam sunbeam是一个部署openstack的工具,它会用ju…