dp.
class Solution {
public int findLength(int[] A, int[] B) {
if (A == null || A.length == 0 || B == null || B.length == 0) {
return 0;
}
int[][] dp = new int[A.length+1][B.length+1];
int result = 0;
for (int i=1; i<=A.length; i++) {
for (int j=1; j<=B.length; j++) {
dp[i][j] = (A[i-1] == B[j-1]) ? dp[i-1][j-1] + 1 : 0;
result = Math.max(result, dp[i][j]);
}
}
return result;
}
}