题目描述:
给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。
示例:
输入:
A: [1,2,3,2,1]
B: [3,2,1,4,7]
输出: 3
解释:
长度最长的公共子数组是 [3, 2, 1]
/**
* @ClassName: PublicMaxLength
* @Author sandy.n.hao
* @Date: 2018/12/19
* @Version v1.0.0
* @Description: //TODO
*/
public class PublicMaxLength {
public static int count = 0;
public static int tempcount = 0;
public static int getMaxLength(int [] a, int [] b){
for(int i=0; i<b.length; i++)
{
for(int j=0; j<a.length; j++){
tempcount = 0;
if(b[i] == a[j])
{
tempcount++;
compare(a,b,j+1,i+1);
}
if(tempcount > count)
count = tempcount;
}
}
return count;
}
public static int compare(int [] a,int [] b, int la, int lb){
if(la<a.length && lb<b.length){
if(a[la] == b[lb]) {
tempcount++;
compare(a, b, la + 1, lb + 1);
}
}
return tempcount;
}
public static void main(String[] args) {
int [] a = {1,0,0,0,0};
int [] b = {0,0,0,0,1};
System.out.println(getMaxLength(a,b));
}
}
网友评论