美文网首页数据解构和算法
65.最长公共子序列

65.最长公共子序列

作者: wo不是黄蓉 | 来源:发表于2022-02-25 20:56 被阅读0次

day14: 1143. 最长公共子序列(中等)
考点:动态规划
上一个问题是用一维数组来解决的,这个问题我们使用二维数组来记录当前元素和其存在的公共子序列的个数。
创建初始化数组,每次循环之后和上一次计算的值做比较求最大值。

var longestCommonSubsequence = function (text1, text2) {
  let m = text1.length,
    n = text2.length;
  let dp = new Array(m + 1).fill(0).map(() => new Array(n + 1).fill(0));
  for (let i = 1; i <= m; i++) {
    let c1 = text1[i - 1];
    for (let j = 1; j <= n; j++) {
      let c2 = text2[j - 1];
      //判断比较的两个值是否相等,相等->修改dp[i][j]的值
      if (c1 === c2) {
        console.log();
        dp[i][j] = dp[i - 1][j - 1] + 1;
      } else {
        //不相等,和上一次计算的值做比较求最大值
        dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);
      }
    }
  }
  return dp[m][n];
};

console.log(longestCommonSubsequence("abcde", "ace"));

相关文章

  • 公共子序列问题

    最长公共子序列 最长上升子序列 最长公共上升子序列

  • 最长公共子序列和最长公共子串

    最长公共子序列和最长公共子串区别 最长公共子串(Longest CommonSubstring)和最长公共子序列(...

  • 65.最长公共子序列

    day14: 1143. 最长公共子序列[https://leetcode-cn.com/problems/lo...

  • 算法(04)动态规划

    零钱问题 背包问题 最长公共子序列 最长公共子串 最长上升子序列 最大连续子序列和

  • LCS问题

    LCS问题包括最长公共子序列和最长公共子串,其中,最长公共子串要求必须连续。 对于二者的求解方式 最长公共子序列:...

  • 子序列问题

    最长公共子序列 最长上升/下降/不升/不降子序列

  • 子串 子序列 总结

    最长公共子串 子串的要求比子序列严格,所以可以讨论子串的终点 最长公共子序列 DP解 递归+memo 最长公共回文...

  • 序列比对(二十四)——最长公共子序列

    原创:hxj7 本文介绍如何求解两个字符串的最长公共子序列。 最长公共子序列问题 前文《序列比对(23)最长公共子...

  • lintcode 最长公共子序列

    给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。说明最长公共子序列的定义: 最长公共子序列问题是在...

  • 字符串的几个问题

    1.最长公共子序列2.最长公共子串3.最长回文串4.最长回文序列5.最长递增序列6.最长先增后减序列7.(最短)编...

网友评论

    本文标题:65.最长公共子序列

    本文链接:https://www.haomeiwen.com/subject/qrrfrrtx.html