题解 | #最长公共子数组#
最长公共子数组
https://www.nowcoder.com/practice/6032826d387c4a10ad3690cce5fdb015
#include <algorithm> #include <vector> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param A int整型vector * @param B int整型vector * @return int整型 */ /*dp[i][j]:A以nums[i-1]结尾的子数组与B以nums[j-1]结尾的子数组中最长公共子数组的长度*/ /*if (A[i-1]==B[j-1]) dp[i][j]=dp[i-1][j-1]+1否则为0*/ int longestCommonSubarry(vector<int>& A, vector<int>& B) { // write code here vector<vector<int>>dp(A.size()+1, vector<int>(B.size()+1, 0)); int max_len = 0; for (int i = 1; i <= A.size(); i++) { dp[i][0] = 0; } for (int j = 1; j < B.size(); j++) { dp[0][j] = 0; } for (int i = 1; i <= A.size(); i++) { for (int j = 1; j <= B.size(); j++) { if (A[i-1]==B[j-1]) { dp[i][j]=dp[i-1][j-1]+1; } else { dp[i][j]=0; } max_len=max(max_len,dp[i][j]); } } return max_len; } };