今天去面试遇到一个算法相关的问题:
有二个从小到大已近排序好的数组,怎么找出它们的交集
答案:使用 二路并归发查找,也就是二个数组同时循环。具体代码
int[]arr1={1,2,3,4,5,6,7,19};
int[]arr2={3,4,6,8,9,19};
inti=0,j=0;
Listres=newArrayList();
while( i < arr1.length && j < arr2.length ){
int temp1 = arr1[i];
int temp2 = arr2[j];
if(temp1==temp2){
res.add(temp1);
i ++;
j++;
}else if (temp1 > temp2){
j++;
}else{
i++;
}
System.out.println(res);
}
网友评论