題目描述:
題目.jpg
解題思路:
使用二維數(shù)組能夠清晰的表示出兩個數(shù)組相同的部分式矫,此處二維數(shù)組定義為 int[][] pointValue=new int[][];
元素不同的位置標識為0真椿,相同的位置存儲以此位置向前數(shù)連續(xù)相同的個數(shù)
圖示.png
完整代碼:
class Solution {
public int findLength(int[] A, int[] B) {
//獲取兩數(shù)組長度
int aLength=A.length;
int bLength=B.length;
//標識兩數(shù)組截止到當前位置對應相同部分長度
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;
}
}