题目来源
给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。

一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。
例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。
若这两个字符串没有公共子序列,则返回 0。

示例 1:
输入:text1 = “abcde”, text2 = “ace”
输出:3
解释:最长公共子序列是 “ace”,它的长度为 3。
示例 2:
输入:text1 = “abc”, text2 = “abc”
输出:3
解释:最长公共子序列是 “abc”,它的长度为 3。
示例 3:
输入:text1 = “abc”, text2 = “def”
输出:0
解释:两个字符串没有公共子序列,返回 0。

解题思路


代码1
class Solution {public int longestCommonSubsequence(String text1, String text2) {int m = text1.length(), n = text2.length();int[][] dp = new int[m+1][n+1];for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){if(text1.charAt(i) == text2.charAt(j)){dp[i + 1][j + 1] = dp[i][j] + 1;}else{dp[i + 1][j + 1] = Math.max(dp[i + 1][j], dp[i][j + 1]);}}}return dp[m][n];}
}
代码2
class Solution {public int longestCommonSubsequence(String text1, String text2) {int[] dp = new int[text2.length() + 1];for(int i = 0; i < text1.length(); i++){int prev = dp[0];for(int j = 1; j < dp.length; j++){int temp = dp[j];if(text1.charAt(i) != text2.charAt(j - 1)){dp[j] = Math.max(dp[j - 1], dp[j]);}else{dp[j] = prev + 1;}prev = temp;}}return dp[dp.length - 1];}
}

LeetCode第1143题最长公共子序列相关推荐

  1. 经典算法题——最长公共子序列

    ** 解析: ** 此题一共有两个要点: 1.求上述两个最长公共子序列的长度 2.求所有可能出现的最长公共子序列个数,答案可能很大,只要将答案对10^8求余即可 第一个都很好想到,难点在于第二个.下面 ...

  2. leetcode算法题--最长公共子序列★

    原题链接:https://leetcode-cn.com/problems/longest-common-subsequence/ 动态规划 dp[i][j]表示text1[:i]和text2[:j] ...

  3. 365天挑战LeetCode1000题——Day 014 每日一题 + 最长公共子序列

    文章目录 1. [我能赢吗](https://leetcode.cn/problems/can-i-win/) 1.1 记忆化搜索+DFS+位运算 2. [最长公共子序列](https://leetc ...

  4. 十月常见算法考题、最长递增子序列,Leetcode第300题最长上升子序列的变种,我没见过乔丹,今天詹姆斯就是我的神!

    @Author:Runsen @Date:2020/10/12 十月过得很平缓.在这个"收获的季节",我成了为数不多不必收获的人.每天睡到中午,即使闹钟设在早上也很难把自己弄醒. ...

  5. 数据结构与算法专题——第三题 最长公共子序列

    一:作用 最长公共子序列的问题常用于解决字符串的相似度,是一个非常实用的算法,作为码农,此算法是我们的必备基本功. 二:概念 举个例子,cnblogs这个字符串中子序列有多少个呢?很显然有27个,比如 ...

  6. LeetCode 第594题——最长和谐子序列

    题目 和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 . 现在,给你一个整数数组 nums ,请你在所有可能的子序列中找到最长的和谐子序列的长度. 数组的子序列是一个由数组派生出来的 ...

  7. 蓝桥杯第五届省赛JAVA真题----最长公共子序列

    一个串的子串是指该串的一个连续的局部.如果不要求连续,则可称为它的子序列. 比如对串: "abcdefg" 而言,"ab","abd",&q ...

  8. c语言最长递增子序列nlogn,十月常见算法考题、最长递增子序列,Leetcode第300题最长上升子...

    十月常见算法考题.最长递增子序列,Leetcode第300题最长上升子 十月常见算法考题.最长递增子序列,Leetcode第300题最长上升子序列的变种,我没见过乔丹,今天詹姆斯就是我的神! @Aut ...

  9. 【动态规划】最长公共子序列与最长公共子串

    1. 问题描述 子串应该比较好理解,至于什么是子序列,这里给出一个例子:有两个母串 cnblogs belong 比如序列bo, bg, lg在母串cnblogs与belong中都出现过并且出现顺序与 ...

最新文章

  1. Android lunchMode singleTask模式,home 键之后回到首页
  2. 关于mysql内存管理_MYSQL内存管理及优化
  3. poj 3662 Telephone Lines(好题!!!二分搜索+dijkstra)
  4. 设计模式-单件模式(Singleton pattern)
  5. 如何使用SetTimer MFC 够详细
  6. 矿难让显卡压了那么多货咋办?NV如是说
  7. 实验二+140+阮晨曦
  8. 可能用得上的jquery 插件
  9. 小米回应造车传闻;饿了么就春节“套路”骑手活动致歉;Go 1.16 正式发布 | 极客头条...
  10. 设计模式--中介者模式(Mediator)
  11. C++基础知识:fflush(stdin)的误区
  12. java 利用时间生成主键
  13. 1月16日新经济智库大会聚焦数字经济,议程、直播全收藏
  14. python + selenium + Chromedriver 的浏览器爬虫出现的一些问题的汇总
  15. JMeter 录制脚本
  16. python是否安装numpy_python 怎么查看安装numpy的版本
  17. 计算机白板培训报道,学习电子白板心得体会
  18. 九爷带你了解 zabbix 报警机制
  19. [从头读历史] 第261节 左传 [BC657至BC598]
  20. 当神话故事邂逅 NFT数字藏品:知名艺术家张宏携《西游》拉开元宇宙序幕

热门文章

  1. 2020度小满java方向笔试题
  2. setting配置文件
  3. SMETA验厂咨询,由于两种模式所需的审核天数不同,总的费用存在差异
  4. 风控中所涉及的重要指标全解析
  5. 2018-2019 ACM-ICPC, Asia Shenyang Regional Contest E. The Kouga Ninja Scrolls 不容易的线段树 切比雪夫距离
  6. php插入音乐代码,如何修改Wordpress博客代码在文章中插入音乐 | 垃圾站
  7. php 点符号怎么打,word点怎么打到两个字的中间
  8. python打包/pip 安装过程(pip,setup.py,wheel,flit)
  9. AC-DC开关电源知识点学习
  10. 网络搜索先锋 v1.0 官方