leetcode 718:最长重复子数组

使用动态规划的方式

int findLength(std::vector<int>& A, std::vector<int>& B) {
    int s=A.size();
    int t=B.size();
    int max=0;
    std::vector<std::vector<int>> dp(s+1,std::vector<int>(t+1,0));
    for(int i=1;i<=s;i++){
        for(int j=1;j<=t;j++){
            if(A[i-1]==B[j-1]){
                dp[i][j]=dp[i-1][j-1]+1;
                max=std::max(max,dp[i][j]);
            }
        }
    }
    return max;
}

猜你喜欢

转载自blog.csdn.net/u013263891/article/details/83721021