下午刚到实验室,看到一个同学在群里发了,他面试阿里的一道算法,求两个数组的交集。两个数组元素是无序的,可重复的。刚才准备吃饭,想起今天还没看算法题,就水了一下。
#include <iostream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char str1[] = "1111222333344455611122333444466669";
char str2[] = "11222333664455778899112233";
char result[1000];
int i=0;
int j=0;
int k=0;
int n,flag;
memset (result,0,sizeof(result));
while(str1[i]!='\0')
{
flag = 1;
for(n=0;n<strlen(result);n++)//查看此元素是否出现过
{
if(str1[i]==result[n])
{
flag = 0;
break;
}
}
if(flag)
{
j = 0;
while(str2[j]!='\0')
{
if(str1[i] == str2[j])
{
result[k++] = str1[i];
break;
}
j++;
}
}
i++;
}
cout << result << endl;
system("pause");
return 0;
}