美文网首页
LeetCode-最长重复子数组

LeetCode-最长重复子数组

作者: eagerabu | 来源:发表于2020-07-01 17:43 被阅读0次

    题目描述:


    题目.jpg

    解题思路:
    使用二维数组能够清晰的表示出两个数组相同的部分,此处二维数组定义为 int[][] pointValue=new int[][]; 元素不同的位置标识为0,相同的位置存储以此位置向前数连续相同的个数

    图示.png

    完整代码:

    class Solution {
        public int findLength(int[] A, int[] B) {
            //获取两数组长度
            int aLength=A.length;
            int bLength=B.length;
    
            //标识两数组截止到当前位置对应相同部分长度
            int[][] pointValue=new int[aLength][bLength];
    
            //存储最大长度
            int maxLength=0;
    
            //开始计算最大相同长度
            for(int i=0;i<aLength;i++){
               for(int j=0;j<bLength;j++){
                   if(A[i]==B[j]){
                     pointValue[i][j]=((i-1)<0||(j-1)<0)?1:pointValue[i-1][j-1]+1;
                     maxLength=Math.max(maxLength,pointValue[i][j]);
                   }
               }
            }
            return maxLength;
        }
    }
    

    相关文章

      网友评论

          本文标题:LeetCode-最长重复子数组

          本文链接:https://www.haomeiwen.com/subject/ulhhqktx.html