有序数组A,B,求A中哪些元素在B中

/*
 * 给定两个排好序的数组A,B,大小分别为n,m。给出一个高效算法查找A中的哪些元素存在B数组中。
 *
 * 方法一:一般在大数组中执行二分查找,将小数组的元素作为需查找的对象。复杂度为 N*log(M)
 *
 * 方法二:可以使用两个指针遍历AB,比较当前大小就可以了...时间复杂度o(n+m)
 */

 

解法如上述所给方法所示,现实现方法二的代码如下所示~

 

#include 
using namespace std;

int arrA[] = {1,2,3,3,3,3,4,5,5,5,6,7,7,7,8};
int arrB[] = {2,3,4,6,8,12,23,45};     //查找A中哪些元素在B中

void solve(int lenA, int lenB)
{
	int j = 0;
	for(int i=0; i


 

欢迎读者留言探讨~O(∩_∩)O~

 

 

你可能感兴趣的:(程序员面试题)