[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. 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 };
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步