leetcode 1143. 最长公共子序列

news2024/11/23 13:20:38

 

1. dp 数组的定义

        下标: 以 i  - 1 和 j - 1 为结尾的子序列

        值:以 i  - 1 和 j - 1 为结尾的最长公共子序列的长度

2. 递推公式

if(text1[i - 1] == text2[j - 1])     // 相等        
    dp[i][j] = dp[i - 1][j - 1] + 1 ;
else
    dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]); 


    不相等分为两种情况
        i - 1 之后,再与当前的 j 比较
        例如:abcd  abe,此时的 c 和 e 不相等,所以就向前比较,ab 与 abe
             |i|    |j|
        j - 1 之后,再与当前的 i 比较
        例如:abcd  abe,此时的 c 和 e 不相等,所以就向前比较,abc 与 ab

3. 初始化,因为是从 dp数组的定义是从 i - 1 和 j - 1 进行比较的,所以可以默认初始化

4. 遍历顺序

        从小到大

class Solution {
public:
    int longestCommonSubsequence(string text1, string text2) {

        vector<vector<int>> dp(text1.size()+ 1, vector<int>(text2.size() + 1, 0));

        int res = 0;
        for(int i = 1 ; i <= text1.size() ; i++)  // 这里是 <= 
        {
            for(int j = 1 ; j <= text2.size(); j++) // 这里是 <= 
            {
                if(text1[i - 1] == text2[j - 1])                
                    dp[i][j] = dp[i - 1][j - 1] + 1 ;
                else
                    dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]); 
            }   
        }
        return dp[text1.size()][text2.size()];
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/494858.html

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

相关文章

【问题记录】flask开发blog

文章目录 小知识点问题1. 文章标签显示错误2. 文章状态无法回显&#xff08;open)3. 用户管理页面&#xff0c;图标无法显示4. BuildError5. 用户管理添加用户&#xff0c;使用重复的用户名会报错(open)6. 添加用户&#xff0c;不上传头像会报错(open)7. 部分标签删除时报错&am…

设计模式 Template Method Pattern(Inheritance) vs Strategy Pattern(Delegation)

Template Method Pattern 和 Strategy Pattern 是两种常用的行为设计模式。他们分别用了继承inheritance和委托delegation两种不同的实现方法&#xff0c;因为上篇文章讲过了UML图&#xff0c;所以这篇顺便可以把两种不同模式的UML图都带出来一起说明。 Template Method Patte…

Mybatis的PageHepler用法

分页原理 分页在使用时的分类 物理分页: 在操作数据库中的表时,sql语句中使用了limit ?,?,此时sql语句返回的结果是分页结果 逻辑分页: 依赖程序的代码,其原理为:通过sql语句将数据库表中的所有数据都查询出,之后将数据保存在内存中,最终要显示的数据若涉及到分页,到内存中…

Java企业级信息系统开发01—采用spring配置文件管理bean

文章目录 一、Web开发技术二、spring框架&#xff08;一&#xff09;spring官网&#xff08;二&#xff09;spring框架优点&#xff08;三&#xff09;Spring框架核心概念1、IoC&#xff08;Inversion of Control&#xff09;和容器2、AOP&#xff08;Aspect-Oriented Programm…

Golang 包使用注意事项

1&#xff09;在给一个文件打包时&#xff0c;该包对应一个文件夹&#xff0c;比如这里的utils文件夹对应的包名就是utils&#xff0c;文件的包名通常和文件所在的文件夹名一致&#xff0c;一般为小写字母。 2&#xff09;当一个文件要使用其它包函数或变量时&#xff0c;需要…

【AI聊天 | GPT4教学】 —— 微软 New Bing GPT4 申请与使用保姆级教程(免魔法)

目录 认识 New Bing 1. 下载 Microsoft Edge 浏览器 2. 注册并登录 Microsoft 账号 3. 如何免科学上网使用 New Bing&#xff1f; 4. 加入 WaitList 候补名单 5. 使用 New Bing&#xff01; 6. 使用 Skype 免科学上网访问 New Bing&#xff01; 7. 在 Chrome 浏览器中使…

gpt人工智能详细介绍

chatgpt人工智能怎么下载 OpenAI ChatGPT不是一款普通的软件&#xff0c;它是由OpenAI开发的一款基于人工智能技术的自然语言生成器。因此&#xff0c;它并不需要像普通软件一样下载和安装在您的计算机上。 作为一个云端服务&#xff0c;OpenAI ChatGPT可以通过您的浏览器直接…

HBASE入门 基本shell命令(一)

一、登录连接shell $HBASE_HOME/bin/hbase shell二、基本命令 2.1help命令 help创建命名空间 create_namespace bigdata;查看命名空间 list_namespace命名空间default和habase是系统自带的 三、DDL 3.1创建表 create bigdata:student, {NAME > name, VERSIONS> 5}…

每日学术速递5.6

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.AG3D: Learning to Generate 3D Avatars from 2D Image Collections 标题&#xff1a;AG3D&#xff1a;学习从 2D 图像集合生成 3D 头像 作者&#xff1a;Zijian Dong, Xu Chen, …

Amper Music:AI创意音乐工具

【产品介绍】 Amper Music 是一家位于美国纽约的人工智能音乐技术公司&#xff0c;成立于2014年。 Amper Music是一个AI创意音乐工具&#xff0c;能让任何人为自己的内容制作原创音乐。无论你需要为视频、播客或互动内容配乐&#xff0c;Amper Music都能提供一个简单而强大的解…

【PHP在线定制商城网站源码V3.0】开源的DIY在线定制商城系统+在线礼品定制

源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/87637177 PHP在线定制商城网站源码&#xff0c;免费开源、免费下载。本商城基于mycncart开发。安装成功后即可浏览&#xff0c;你可以在后台->安装扩展功能上传安装插件&#xff0c;在代码调整中点击刷…

【边缘设备】yolov5训练与rknn模型导出并在RK3588部署(亲测有效)

保姆级教程&#xff0c;看这一篇就够用了 环境准备 将宿主机和开发板接入同一个局域网&#xff0c;方便开发。 宿主机 PC电脑&#xff0c;x86_64, 带显卡, 配置不表, 能训练和开发即可。系统&#xff1a; ubuntu 22.04 LTS 版本( ubuntu 18.04 LTS 以上)自带的远程软件&…

windeployqt工具打包C++ QT项目

目录 前言方法TIP 前言 使用VS编写好QT项目后&#xff0c;有时需要发送给他人进行测试。在此情况下&#xff0c;发送所有项目文件显然不可取&#xff0c;因为exe文件不能独立运行&#xff0c;故在测试前需要先配置项目环境&#xff0c;以确保运行所需的库文件能够完全。 因此&…

《操作系统》——计算机系统概述

前言&#xff1a; 在之前的【Linux】学习中&#xff0c;我们已经对常见指令已经开发工具等进行了详细的了解。紧接着&#xff0c;我们将要学习的便是关于【Linux进程】的基本知识。但是为了帮助大家更好的理解相关的知识概念&#xff0c;我先带领大家来学习关于《操作系统》这…

【SpringMVC】| 拦截器 | 跨域请求 | 原理详解 | 代码实操

目录 一. &#x1f981; 前言二. &#x1f981; 拦截器 & 跨域请求1. 拦截器Ⅰ. 拦截器和过滤器(Filter)的区别Ⅱ. 拦截器的使用步骤1. 创建SpringBoot项目&#xff0c;添加Spring Web依赖2. 创建控制器方法3. 创建拦截器类4. 编写JSP页面5. 配置Interceptor核心配置类6. 拦…

《理想国》读书感悟

第一卷 话题从年老谈到财富&#xff0c;引出了雪蒙拿的正义观&#xff1a;欠债还钱是正义&#xff0c;从而提出了“正义是什么”的探讨。 辩论中正义定义的演变&#xff1a; 实话实说欠债还债是正义&#xff08;商人的视角&#xff09;。报朋友以善&#xff0c;报敌人以恶是…

Springboot JSR303校验是怎么回事?

概述&#xff1a; 在做项目的过程中&#xff0c;除了要在前端进行数据校验外&#xff0c;服务端也必须做相应的校验&#xff0c;因为高手可绕过前端的校验&#xff0c;直接进入服务端调用相关的方法&#xff0c;进行资料的盗取或破坏。在前端如果使用VueElementUI的方式&#…

基于SpringBoot3从零配置SpringDoc

为了方便调试&#xff0c;更好的服务于前后端分离式的工作模式&#xff0c;我们给项目引入Swagger。 文章目录 1. SpringFox2. SpringDoc2.1 引入依赖2.2 配置文件2.3 语法2.4 使用示例Tag 用于标识controllerOperation 用于标识方法Schema 用于标识实体类和实体类的属性ApiRes…

Unity Nsight Graphcis 使用

前言 在渲染Profile中&#xff0c;大家经常喜欢使用Renderdoc软件, 之前我的一篇博客也介绍Renderdoc Profile渲染的流程 RenderDoc Debug UE4 Shader_ue4 debug shader_带帯大师兄的博客-CSDN博客 Renderdoc适合查看Draw哪一步出差了&#xff0c;导致效果不符合理想&#xf…

webpack : 无法加载文件 D:\...\node-v18.16.0-win-x64\webpack.ps1,因为在此系统上禁止运行脚本

用idea打开项目时&#xff0c;安装webpack打包的包之后&#xff0c;由于组策略问题拒绝执行脚本 解决方法 1、cmd打开命令行。输入&#xff1a;powershell 出现 PS 证明已经进入组策略模式 2、输入&#xff1a;get-executionpolicy&#xff0c;查看策略 ​ 输入&#xff1a…