感谢大家的理解与指正!觉的写的不错的小伙伴儿,一键三连支持一下,后期会有持续更新!!抱拳了罒ω罒

  最长公共子序列和最长公共子串都是动态规划的经典题型,最长公共子序列要求的是不一定连续,最长公共子串的要求的是必须连续。

1. 最长公共子序列的问题——leetcode-1143 最长公共子序列

此处只给出动态规划的解法:定义 dp[i][j] 表示 text1[0:i-1] 和 text2[0:j-1] 的最长公共子序列的长度,也就是text1的前i个字符和text2的前j个字符的最长公共子序列的长度。

状态转移方程,分两种考虑:

import java.util.Arrays;
public class longestCommonSubsequence_1143 {public static int longestCommonSubsequence(String text1, String text2) {int m = text1.length();int n = text2.length();//dp[i][j]表示text1(0,i - 1)和text2(0,j - 1)最长公共子序列的最大值int [][]dp = new int[m + 1][n + 1];//注意从1开始遍历,方便处理for (int i = 1; i <= m; i++) {char c1 = text1.charAt(i - 1);for (int j = 1; j <= n; j++) {char c2 = text2.charAt(j - 1);dp[i][j] = c1 == c2 ? dp[i - 1][j - 1] + 1 : Math.max(dp[i - 1][j],dp[i][j - 1]);}}return dp[m][n];}
}

2. 最长公共子串的问题——leetcode-718 最长公共子序列

定义 dp[i][j] 表示 text1[0:i-1]以 i结尾的子串和 text2[0:j-1] 以j结尾的子串的最大公共子串

状态转移方程,分两种考虑:

public class findLength_718 {public static int findLength(int[] nums1, int[] nums2) {int m = nums1.length;int n = nums2.length;int res = 0;//dp[i][j]表示text1(0,i - 1)和text2(0,j - 1)最长公共子串int [][]dp = new int[m + 1][n + 1];for (int i = 1; i <= m; i++) {int c1 = nums1[i - 1];for (int j = 1; j <= n; j++) {int c2 = nums2[j - 1];//注意与最长公共子序列的区别dp[i][j] = c1 == c2 ? dp[i - 1][j - 1] + 1 : 0;if (dp[i][j] > res)res = dp[i][j];}}return res;}
}

一分钟搞定最长公共子序列与最长公共子串的问题相关推荐

  1. 北京退公交卡:网点排队110分钟 黄牛1分钟搞定 (zz)

    http://www.chinanews.com/sh/2013/10-18/5398118.shtml?f=baidu.com 动物园公交枢纽退卡网点排起了长队.人民网赵艳红摄 //z 2013-1 ...

  2. 启程 - 《每日五分钟搞定大数据》

    <每日五分钟搞定大数据>原创系列,每周不定期更新.欢迎关注公众号:大叔据   想了很久,准备开始写一系列的文章,记录这些年来的所得所想,感觉内容比较多不知从哪里开始,画了个思维导图确定了大 ...

  3. 正则表达式里转义字符_五分钟搞定正则表达式,如果没搞定,再加两分钟

    五分钟搞定正则表达式,如果没搞定,再加两分钟 [这是 ZY 第 18 篇原创文章] 文章概览 一.正则表达式介绍 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简 ...

  4. 逗号后面统一加空格_十分钟搞定字幕,教你做加字幕的“快手菜”

    平台上许多同学有疑问:做视频是否有加字幕的必要呢? 其实除了外语需要翻译.语速过快加字幕方便理解.普通话不标准等情况之外,还是建议有余力的同学可以加上字幕,提升用户的观看体验. 那么问题来了,存在以下 ...

  5. 视频教程-10分钟搞定 php+H5手机网页微信支付 在线视频教程(含源代码)-微信开发

    10分钟搞定 php+H5手机网页微信支付 在线视频教程(含源代码) 04年进入计算机行业.拥有6年net和php项目开发经验,8年java项目开发经验. 现前端全栈工程师,主攻产品设计,微信开发等. ...

  6. windows+mysql集群搭建-三分钟搞定集群

    一.集群了解 计算机一级考试系统要用集群,目标是把集群搭建起来,保证一个库dang了,不会影响程序的运行.首先看了一些关于集群的资料,然后根据步骤一步步的整,遇到了一些问题,在这里把我遇到的问题以及解 ...

  7. 风控必备的评分卡模型,TempoAI 10分钟搞定

    8月20日,央行发布了<2020年第二季度支付体系运行总体情况>,数据显示,截至第二季度末,信用卡逾期半年未偿信贷总额838.84亿元,占信用卡应偿信贷余额的1.17%.与一季度相比,信用 ...

  8. 用1分钟学会4个PPT高效小技巧,3个小时才能完成的工作5分钟搞定~

    制作PPT总是要花费巨长的时间?看过来~用1分钟学会4个PPT高效小技巧,3个小时才能完成的工作5分钟搞定,效率就是这么高~ 1.一秒去动画 操作:幻灯片放映-设置幻灯片放映-放映时不加动画 2.抠图 ...

  9. 一分钟搞定触手app主页酷炫滑动切换效果

    代码地址如下: http://www.demodashi.com/demo/12826.html 前言: 前几天在看手机直播的时候,自己就用上了触手app.一进到主页就看上了里面页面切换的效果,自己想 ...

最新文章

  1. scrolling=no 无法根据坐标获取元素_汽车制造行业如何选择三坐标测量仪?
  2. 2021牛客暑期多校训练营4 Tree Xor (区间异或上一个数+区间求交)
  3. 如何有效地连接字符串
  4. C语言中| 按位或, || 逻辑或。
  5. Python轻量级IDE推荐 -- Jupyter QTConosle
  6. slimphp中间件调用流程的理解
  7. mPaas-RPC拦截器各种场景下的使用指南
  8. cad中简单流程图制作_Excel vba 简单制作流程图方法介绍
  9. Spring 常见问题( 持续更新... ... )
  10. VMware下Ubuntu与宿主Windows共享文件夹
  11. 学习 storm,整合 springboot
  12. html如何做幻灯片效果,超酷的CSS3幻灯片效果
  13. Windows又又又更新?Win 12开发将于下个月开始
  14. GlassFish 理解
  15. STM8L051比较器使用案例(二)COMP1+COMP2构成窗口比较器
  16. Linux C程序访问NULL指针
  17. DGP链游公会丨一文概览什么是GameFi链游
  18. c++ mupdf 提取pdf文件里面图片
  19. weka使用训练集分类测试集_技术分享
  20. CISCO和华为交换机修改密码

热门文章

  1. 智能汽车预期功能安全保障关键技术
  2. 五种常见启发式算法求解TSP问题-总结篇
  3. 西门子PLC1200/1500配方实例程序
  4. Pytest如何并发执行自动化脚本
  5. 软件测试用例设计之Pairwise算法
  6. 【高质量编程指南笔记】
  7. 【Java】Java中的常用工具类(排名前 16)
  8. 关于Mastering-OpenCV3第二版的代码跑通--关于PCL的一些问题
  9. uniapp从开发App到上架应用市场需要经历什么?
  10. 数据结构-栈(栈的C语言实现)