问题描述:
给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。...示例 1:
输入:
A: [1,2,3,2,1]
B: [3,2,1,4,7]
输出: 3
解释:
长度最长的公共子数组是 [3, 2, 1]。...解决方案:
模板题直接上dp,dp[i] [j] 为A数组以 i 结尾,B数组以 j 结尾的最长公共子串长度。
...= B[j] \\\ dp[i - 1][j - 1] + 1 \qquad else\end{cases}
若当前A[i] 不等于 B[j]时,以A[i]结尾和以B[j]结尾的最长公共子串长度一定为...int M = A.length, N = B.length;
int[][] dp = new int[M][N]; // dp[i][j] 表示A以i结尾 B以j结尾的最长公共子串的长度