718. 最长重复子数组

图片说明

class Solution {
   public int findLength(int[] A, int[] B) {
        int n = A.length;
        int m = B.length;
        int f[][] = new int [n+1][m+1];
        int ans = 0 ;
        for(int i = 0; i < n ; i++) {  //最长公共子数组
            for(int j = 0 ; j < m ; j++) {
                if(A[i]==B[j]) {
                    f[i+1][j+1] =  f[i][j]+1;//只能由斜上角的值决定
                }
                else {
                    f[i+1][j+1] = 0;  //本想传递给下一个 结果发现传递反而影响结果
                }
                ans = Math.max(ans,f[i+1][j+1]);
            }

        }
       // for(int i = 1 ; i<=n;i++){
       //     for(int j = 1 ; j <= m ;j++){
       //         System.out.print(f[i][j]+" ");
       //     }System.out.println();
       // }
        return ans;

    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务