动态规划-1143.最长公共子序列-力扣(LeetCode)

article/2025/6/8 4:51:57

一、题目解析

对于给定了两个字符串中,需要找到最长的公共子序列,也就是两个字符串所共同拥有的子序列。

二、算法原理

1、状态表示

 

dp[i][j]:表示s1的[0,i]和s2的[0,j]区间内所有子序列,最长子序列的长度

2、状态转移方程

根据最后一个位置的状态,分情况讨论

 

dp[i][j] s1[i]==s2[j]->dp[i-1][j-1]+1

          s1[i]!=s2[j]->max(dp[i][j-1],dp[i-1][j])

3、初始化

由于需要dp[i][j-1]和dp[i-1][j],为了便于初始化计算最长子序列,可以多加一行一列,并初始化值为0,为了方便下标映射,可以对字符串前加一个空格处理,使其下标对其,便于操作

4、填表顺序

 

为了避免所需值为计算,从上往下,从左往右开始填表

5、返回值

需要返回的是在s1和s2长度下的最长公共子串,所以return dp[m][n] 

依旧先画图思考,在自己实现,链接:1143. 最长公共子序列 - 力扣(LeetCode)

三、代码示例

 

class Solution {
public:int longestCommonSubsequence(string text1, string text2) {int m = text1.size(),n = text2.size();vector<vector<int>> dp(m+1,vector<int>(n+1,0));text1 = " "+text1;text2 = " "+text2;for(int i = 1;i<=m;i++){for(int j = 1;j<=n;j++){if(text1[i] == text2[j]){dp[i][j]= dp[i-1][j-1]+1;}else{dp[i][j]=max(dp[i-1][j],dp[i][j-1]);}}}return dp[m][n];}
};

 

 

看到最后,如果对您有所帮助,还请点赞、收藏和关注,点点关注不迷路,我们下期再见! 

 

 


http://www.hkcw.cn/article/NFFMhuwcXR.shtml

相关文章

EMQX 社区版单机和集群部署

EMQ 支持 Docker&#xff0c;宿主机&#xff0c;k8s部署&#xff1b;支持单机或集群部署。以下给出EMQX社区版单机和集群部署方法 1. Docker单机部署 官方推荐最小配置&#xff1a;2核 4G 下载容器镜像 docker pull emqx/emqx:5.3.2启动容器 docker run -d --name emqx \-…

小牛电动2025新品矩阵,引领技术普惠新风潮

自2014年成立以来&#xff0c;全球高端智能电动车领导品牌小牛电动已走过十个年头&#xff0c;在全球智能城市出行领域留下了深刻印记。秉持“科技、潮流、自由”的品牌理念&#xff0c;小牛电动致力于改变出行&#xff0c;让城市生活更美好。十年来&#xff0c;小牛电动推出多…

SU-03T1烧录使用教程

一、简介 SU-03T1模块是一款由深圳机芯智能开发的低成本、低功耗、小体积的离线语音识别模组&#xff0c;适用于智能家居、各类智能小家电、86盒、玩具、灯具等需要语音操控的场景。它是SU-03T的一个版本或后续产品&#xff0c;可能在功能或性能上有所改进或特定的应用优化。 该…

SOC-ESP32S3部分:27-设备OTA

飞书文档https://x509p6c8to.feishu.cn/wiki/Hd9TwkuZ3iEQiUkjaoic5p7Knuh ESO32S3应用程序可以在运行时通过网络从服务器下载新的固件&#xff0c;然后将其存储到某个分区中&#xff0c;从而实现固件的升级功能。 在ESP-IDF中有两种方式可以进行空中(OTA)升级: 使用 app_up…

Windows清理之后,资源管理器卡顿-解决方法

一、点击本地磁盘选择属性 二、选择工具 三、选择驱动器进行优化

VBA模拟进度条

在上一章中我跟大家介绍了ProgressBar控件的使用方法&#xff0c;但由于该控件无法在64位版本的Office中运行&#xff0c;为此我们可以采用Lable控件来模拟进度条的变化&#xff0c;以解决在64位版本的Office中无进度条控件的问题。 一、设计思路 添加两个重叠的Lable标签控件…

Linux(线程概念)

目录 一 虚拟地址到物理地址的转换 1. 操作系统如何管理物理内存&#xff1a; 2. 下面来谈谈虚拟地址如何转换到物理地址&#xff1a; 3. 补充字段&#xff1a; 二 Linux中的线程 1. 先来说说进程&#xff1a; 2. 线程&#xff1a; 3. 线程相比较于进程的优缺点&#x…

手把手教你用Appsmith打造企业级低代码平台:从部署到性能调优实战

文章目录 前言1.什么是Appsmith2.Docker部署3.Appsmith简单使用4.安装cpolar内网穿透5. 配置公网地址6. 配置固定公网地址总结 前言 在当今快速变化的商业环境中&#xff0c;企业正面临内部系统建设的双重挑战。传统开发模式不仅需要漫长的开发周期&#xff08;通常需要数月&a…

PyTorch 入门学习笔记(数字识别实战)

目录 一、关于 PyTorch 的一个重要概念——神经网络 二、PyTorch 是如何解决问题的&#xff08;解决案例&#xff09; 1 案例&#xff1a;手写一个数字&#xff0c;让计算机识别出是哪个数字。 2 PyThorch 解决问题大约需要以下几个步骤&#xff1a; 3 代码示例&#xff1…

OSCP备战-BSides-Vancouver-2018-Workshop靶机详细步骤

一、靶机介绍 靶机地址&#xff1a;https://www.vulnhub.com/entry/bsides-vancouver-2018-workshop%2C231/ 靶机难度&#xff1a;中级&#xff08;CTF&#xff09; 靶机发布日期&#xff1a;2018年3月21日 靶机描述&#xff1a; Boot2root挑战旨在创建一个安全的环境&…

CANopen转Profinet 全攻略:打通施耐德变频器与西门子 300PLC通讯链路

Profinet转CAN open西门子300PLC与施耐德变频器通讯 项目 福建某公司在国外的一个工业自动化项目中&#xff0c;控制中心系统通过监控变频器的不同状态发送不同的命令启动/停止变频器&#xff0c;设定变频器的运行速度进而控制变频器所连接的伺服电机。监控中心系统使用的是西…

Shell脚本编程

shell概述 什么是shell&#xff1f; 在Linux内核与用户之间的解释器程序 Linux默认解释器为/bin/bash负责向内核翻译及传达用户/程序指令相当于操作系统的“外壳” shell的使用方式 交互式-命令行 人工干预&#xff0c;智能化程度高逐条解释执行&#xff0c;效率低、 非交…

win11中使用grep

一、下载 https://nchc.dl.sourceforge.net/project/gnuwin32/grep/2.5.4/grep-2.5.4-setup.exe?viasf1 二、控制面板的环境变量 Path中增加 E:\software\GnuWin32\bin 三、测试使用

负载均衡相关基本概念

负载均衡在系统架构设计中至关重要&#xff0c;其核心目标是合理分配负载&#xff0c;提升系统整体性能和可靠性。本文简要介绍了负载均衡的基本概念&#xff0c;包括四层和七层负载均衡、负载均衡的使用场景和实现方式、负载均衡的常用算法以及一些配置相关知识。 1、负载均衡…

Houdini POP入门学习03

跟着教程学习降雪效果制作&#xff0c;这部分包含blast裁剪、外部引脚获取等。 阶段1 1.Geometry中创建grid&#xff0c;连接popnet。 2.双击进入popnet&#xff0c;在wire_pops_into_here前添加popforce&#xff0c;这一步并不是为了添加重力&#xff0c;而是增加一些乱流。 …

ULVAC DC-10-4P 400V input 10kW DC Pulse power supply 爱发科直流电源

ULVAC DC-10-4P 400V input 10kW DC Pulse power supply 爱发科直流电源

星野录(博客系统)测试报告

目录 一. 项目背景 二、项目功能 三、测试计划 1. 功能测试 1.1 测试用例 1.2 执行测试部分操作截图 2. 使用selenium进行自动化测试 2.1 添加相关依赖 2.2 登录页面测试 3.3 注册页面测试 3.4 博客列表页面测试 3.5 博客详情页测试 3.6 博客编辑页面测试 3.7 个人…

WPF技术体系与现代化样式

目录 ​​1 WPF技术架构解析​​ ​​1.1 技术演进与定位​​ ​​1.2 核心机制对比​​ ​​2 样式与资源系统​​ ​​2.1 资源(Resource)定义与作用域​​ ​​2.2 样式(Style)与触发器​​ ​​3 开发环境配置(.NET 8)​​ ​​3.1 安装流程​​ ​​3.2 项目结…

智能快递地址解析接口如何用PHP调用?

一、什么是智能快递地址解析接口 随着互联网技术的普及和电子商务的迅猛发展&#xff0c;网购已成为现代人日常生活的重要组成部分。然而&#xff0c;在这个便捷的背后&#xff0c;一个看似不起眼却影响深远的问题正悄然浮现——用户填写的快递地址格式混乱、信息不全甚至错漏…

Day11

1. HTTP常见状态码有哪些&#xff1f; 1xx 类状态码属于提示信息&#xff0c;是协议处理中的一种中间状态&#xff0c;实际用的比较少。2xx 类状态码表示服务器成功处理了客户端的请求。3xx 类状态码表示客户端请求的资源发生了变动&#xff0c;需要客户端用新的 URL 重新发送请…