[LintCode] 最长公共子序列

简介: 1 class Solution { 2 public: 3 /** 4 * @param A, B: Two strings. 5 * @return: The length of longest common subsequence of A and B.
 1 class Solution {
 2 public:
 3     /**
 4      * @param A, B: Two strings.
 5      * @return: The length of longest common subsequence of A and B.
 6      */
 7     int longestCommonSubsequence(string A, string B) {
 8         // write your code here
 9         int m = A.length(), n = B.length();
10         vector<int> cur(m + 1, 0);
11         for (int j = 1; j <= m; j++) {
12             int pre = 0;
13             for (int i = 1; i <= m; i++) {
14                 int temp = cur[i];
15                 cur[i] = (A[i - 1] == B[j - 1]) ? pre + 1 : max(cur[i], cur[i - 1]);
16                 pre = temp;
17             }
18         }
19         return cur[m];
20     }
21 };

 

目录
相关文章
|
5天前
|
算法
数据结构实验之最长公共子序列
本实验旨在通过编程实践帮助学生理解串的基本概念及求解最长公共子序列的算法。实验内容包括使用动态规划方法设计并实现算法,以找出给定两序列的最大公共子序列。示例代码展示了如何通过构建状态矩阵和回溯路径来找到解决方案。实验总结指出,`memset()`函数用于内存初始化,且对于特定输入,程序能正确输出最长公共子序列之一。
24 4
|
1月前
acwing 897 最长公共子序列
acwing 897 最长公共子序列
22 0
acwing 897 最长公共子序列
|
1月前
acwing 895 最长上升子序列1
acwing 895 最长上升子序列1
30 3
|
6月前
leetcode-1143:最长公共子序列
leetcode-1143:最长公共子序列
57 0
|
6月前
leetcode-300:最长递增子序列
leetcode-300:最长递增子序列
43 0
|
JavaScript 前端开发 C语言
leetcode每日一题 2021/4/3 1143. 最长公共子序列
leetcode每日一题 2021/4/3 1143. 最长公共子序列
57 0
Acwing 3692. 最长连续公共子序列
Acwing 3692. 最长连续公共子序列
64 0
leetcode 1143 最长的公共子序列
leetcode 1143 最长的公共子序列
92 0
leetcode 1143 最长的公共子序列
leetcode 300 最长递增子序列
leetcode 300 最长递增子序列
78 0
leetcode 300 最长递增子序列
|
存储 安全 测试技术
蓝桥<排水管道>题的题解(最长上升子序列的变式)
蓝桥杯排水管道AC题解,帮助你加深理解LIS最长上升子序列
蓝桥<排水管道>题的题解(最长上升子序列的变式)