0
点赞
收藏
分享

微信扫一扫

162 有2个数组,里面有 N 个整数,看是否两个数组里存在一个同样的数

jjt二向箔 2023-02-20 阅读 86


2.  有2个数组..里面有 N 个整数。
设计一个算法O(nlog2(n)),看是否两个数组里存在一个同样的数。

/*
2. 有2个数组..里面有 N 个整数。
设计一个算法O(nlog2(n)),看是否两个数组里存在一个同样的数。

快排,线性扫描
*/
#include<iostream>
#include<algorithm>
using namespace std;
#define N 100

bool findSame(int *a,int len1,int *b,int len2,int *result)
{
int i,j;
i=j=0;
sort(a,a+len1);
sort(b,b+len2);
while(i<len1&&j<len2)
{
if(a[i]<b[j])
++i;
else if(a[i]>b[j])
++j;
else
{
*result=a[i];
return true;
}
}
return false;
}

int main()
{
int i,a[N],b[N],len1,len2,result;
while(1)
{
cout<<"请输入数组1元素的个数n(-1结束):"<<endl;
cin>>len1;
if(len1==-1) break;
cout<<"请输入"<<len1<<"个元素:"<<endl;
for(i=0;i<len1;i++)
cin>>a[i];

cout<<"请输入数组2元素的个数n:"<<endl;
cin>>len2;
cout<<"请输入"<<len2<<"个元素:"<<endl;
for(i=0;i<len2;i++)
cin>>b[i];
if(findSame(a,len1,b,len2,&result))
cout<<result<<endl;
else
cout<<"None"<<endl;
}
return 0;
}
/*
6
1 3 5 6 8 4
5
9 7 3 2 0
-1
*/

162 有2个数组,里面有 N 个整数,看是否两个数组里存在一个同样的数_数组



举报

相关推荐

一个数组中找出两个奇数个的数

判断一个数是否是整数

0 条评论