【错题集-编程题】最长公共子序列(一)(动态规划 - LCS)

简介: 【错题集-编程题】最长公共子序列(一)(动态规划 - LCS)

牛客对应题目链接:最长公共子序列(一)_牛客题霸_牛客网 (nowcoder.com)

力扣对应题目链接:1143. 最长公共子序列 - 力扣(LeetCode)


一、分析题目

【动态规划 - 两个数组 / 字符串之间的 dp 问题】

1、状态表示

dp[i][j] 表示字符串 s1 中 [0, i]  区间与字符串 s2 中 [0, j] 区间中所有的子序列中,最长公共子序列长度。


2、状态转移方程

根据最后⼀个位置的字符情况,划分问题:

  • s1[i] == s2[j]:dp[i][j] = dp[i - 1][j - 1] + 1
  • s1[i] != s2[j]:dp[i][j] = max(dp[i - 1][j], do[i][j - 1])

3、初始化

dp[0][j] = dp[i][0] = 0


4、遍历顺序

从左往右


5、返回值

dp[n][m]


二、代码

//牛客AC代码
#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
    int n, m;
    cin >> n >> m;
    string s1, s2;
    cin >> s1 >> s2;
    vector<vector<int>> dp(n+1, vector<int>(m+1));
    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=m; j++)
        {
            if(s1[i-1]==s2[j-1]) dp[i][j]=dp[i-1][j-1]+1;
            else dp[i][j]=max(dp[i-1][j], dp[i][j-1]);
        }
    }
    cout << dp[n][m] << endl;
    return 0;   
}
 
//力扣AC代码
class Solution {
public:
    int longestCommonSubsequence(string text1, string text2) {
        int n=text1.size(), m=text2.size();
        vector<vector<int>> dp(n+1, vector<int>(m+1));
        for(int i=1; i<=n; i++)
        {
            for(int j=1; j<=m; 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[n][m];
    }
};


相关文章
|
4月前
|
人工智能 JSON 安全
TokUI正式开源!向量空间JBoltAI让AI流式生成UI
TokUI是向量空间JBoltAI开源的全球首个真流式AI UI引擎,专为大模型设计:极简DSL、零依赖、逐字符增量渲染,大幅降低Token消耗;支持表格、图表、表单等150+组件,安全可交互,让AI回复不再是文字墙,而是实时生长的富界面。(239字)
|
3月前
|
编解码 人工智能 缓存
浏览器视频编辑器如何兼容 MKV?LibAV.js、WebCodecs 与 FFmpeg.wasm 实践
本项目打造浏览器端AI视频编辑器,支持MKV/MOV等多格式智能兼容:优先调用原生能力,次选LibAV.js+WebCodecs解封装解码,FFmpeg.wasm仅作兜底转码;结合离线渲染与统一媒体模型,兼顾性能、精度与隐私。(239字)
|
Linux 调度 数据安全/隐私保护
docker的底层原理五: 控制组
本文介绍了Docker中控制组(cgroups)的功能,包括CPU和内存控制、磁盘I/O和网络带宽限制、设备访问控制、审计和报告,以及层次化控制结构,确保容器资源使用的隔离性和限制性。
469 0
|
15天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
8182 18
|
14天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
2402 13
|
14天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
1854 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
12天前
|
人工智能 编解码 并行计算
MiniMax-H3 一键整合包技术文档:8G 显存运行 AI 漫剧制作 —— 角色替换 / 动作迁移 / 文图生视频部署与调参指南
MiniMax H3 是 MiniMax 开源的全模态视频生成模型,支持文/图/音/视多条件输入,输出最高2K、15秒带双声道音频视频。本文档详述其Int8量化版在8GB显存下的本地一键部署、三段式工作流(EDIT/REPLACE/CONTINUE)、参数调优及常见问题排查。(239字)

热门文章

最新文章