算法-二路并归

今天去面试遇到一个算法相关的问题:

有二个从小到大已近排序好的数组,怎么找出它们的交集

答案:使用 二路并归发查找,也就是二个数组同时循环。具体代码

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);

}

更多算法相关面试题关注小程序


算法-二路并归_第1张图片

你可能感兴趣的:(算法-二路并归)