news 2026/4/18 3:27:28

LeetCode热题--1143. 最长公共子序列--中等

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode热题--1143. 最长公共子序列--中等

题目

给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。

一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。

例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。
两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。

示例 1:
输入:text1 = “abcde”, text2 = “ace”
输出:3
解释:最长公共子序列是 “ace” ,它的长度为 3 。

示例 2:
输入:text1 = “abc”, text2 = “abc”
输出:3
解释:最长公共子序列是 “abc” ,它的长度为 3 。

示例 3:
输入:text1 = “abc”, text2 = “def”
输出:0
解释:两个字符串没有公共子序列,返回 0 。

题解

classSolution{publicintlongestCommonSubsequence(Stringtext1,Stringtext2){char[]t=text2.toCharArray();intm=t.length;int[]f=newint[m+1];for(charx:text1.toCharArray()){intpre=0;// f[0]for(intj=0;j<m;j++){inttmp=f[j+1];f[j+1]=x==t[j]?pre+1:Math.max(f[j+1],f[j]);pre=tmp;}}returnf[m];}}

解析

出自:教你一步步思考动态规划:从记忆化搜索到递推(Python/Java/C++/Go)

classSolution{publicintlongestCommonSubsequence(Stringtext1,Stringtext2){// 将 text2 转换为字符数组,便于快速访问每个字符char[]t=text2.toCharArray();// 获取 text2 的长度,记为 mintm=t.length;// 创建一维 DP 数组 f,长度为 m+1;f[j] 表示当前 text1 前缀与 text2[0..j-1] 的 LCS 长度// 初始时所有值为 0(因为未开始匹配)int[]f=newint[m+1];// 遍历 text1 中的每一个字符 xfor(charx:text1.toCharArray()){// pre 用于保存上一轮(即 text1 上一个字符处理时)的 f[j] 值,// 相当于二维 DP 中的 dp[i-1][j-1]intpre=0;// 对应 f[0],即空字符串与任意前缀的 LCS 长度为 0// 遍历 text2 的每个位置 j(从 0 到 m-1)for(intj=0;j<m;j++){// 先保存当前 f[j+1] 的旧值(即上一行的 dp[i-1][j+1]),// 因为它将在下一次循环中作为 "pre"(即 dp[i-1][j])使用inttmp=f[j+1];// 状态转移:// 如果当前字符 x == t[j],说明可以扩展 LCS:f[j+1] = pre + 1// 否则,取不包含 x 或不包含 t[j] 的最大值:max(f[j+1], f[j])f[j+1]=x==t[j]?pre+1:Math.max(f[j+1],f[j]);// 更新 pre 为 tmp(即上一行的 f[j+1]),供下一次 j 循环使用pre=tmp;}}// 最终结果存储在 f[m] 中,表示 text1 与整个 text2 的 LCS 长度returnf[m];}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:26:43

信号发生器在电源纹波测试中的辅助作用:核心要点

信号发生器不只是“发波”——它如何成为电源纹波测试的“诊断医生”你有没有遇到过这样的情况&#xff1a;示波器上看着电源输出干干净净&#xff0c;纹波才几毫伏&#xff0c;结果系统一跑起来就莫名重启、ADC采样跳动、射频模块失锁&#xff1f;问题很可能不在负载本身&…

作者头像 李华
网站建设 2026/4/14 20:13:12

高频信号处理篇---双差分对电路

如果说单差分对是一个“电流天平”&#xff0c;那么双差分对就是 两个联动的电流天平&#xff0c;外加一个“电流开关”。它能把一个信号的正负变化&#xff0c;直接转换成开关动作&#xff0c;是模拟世界通往数字世界的关键桥梁。核心比喻&#xff1a;“电流方向舵”想象你在开…

作者头像 李华
网站建设 2026/4/18 3:25:27

2026年API测试工具全景解析

API测试工具的变革时代微服务、无服务器架构和云原生技术的迅猛发展&#xff0c;使得API成为现代软件系统的核心连接枢纽。随着系统复杂度的指数级增长&#xff0c;API数量呈爆炸式增长趋势。Gartner预测&#xff0c;到2026年&#xff0c;企业级应用中的API调用量将比2023年增长…

作者头像 李华
网站建设 2026/4/18 3:25:30

‌Postman高级用法全解析

一、核心高级用法全景图‌Postman 已从单一接口调试工具演变为‌全生命周期API测试平台‌。针对软件测试从业者&#xff0c;其核心高级能力可归纳为五大维度&#xff1a;高级能力类别关键功能应用价值‌数据驱动测试‌CSV/JSON文件参数化、动态变量注入实现单集合覆盖千级测试用…

作者头像 李华
网站建设 2026/3/25 20:16:10

三轴自动锁螺丝机程序:PLC配方的魅力与实践

三轴自动锁螺丝机程序PLC做配方吸钉式自动锁螺丝机 显控触摸屏加三菱FX3GA或者FX3U 已经在设备上使用。 用PLC做的配方&#xff0c;思路清晰&#xff0c;带详细注释&#xff0c;打螺丝颗数自由设定&#xff0c;可以修改程序调整颗数和配方数。 支持示教调整每颗螺丝位置&…

作者头像 李华
网站建设 2026/4/17 20:30:06

基于SpringBoot的旅游景点推荐系统(源码+lw+部署文档+讲解等)

课题介绍本课题聚焦旅游场景下景点精准匹配与个性化推荐需求&#xff0c;设计并实现一套基于Spring Boot框架的旅游景点推荐系统&#xff0c;旨在破解传统旅游中景点信息分散、推荐匹配度低、游客筛选景点低效、特色景点难挖掘等痛点问题&#xff0c;精准匹配游客获取个性化景点…

作者头像 李华