找出两个有序数组的公共元素,例:有序数组[3, 5, 7, 8, 10, 12]和有序数组[15, 10, 8, 7, 4, 3, 1]的公共元素为(8, 10)
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int m,n;
vector<int> a;
vector<int> b;
cout<<"Please input array a[]:"<<endl;
while(cin>>m)
{
if(m!=-1)
a.push_back(m);
else
break;
}
cout<<"Please input array b[]:"<<endl;
while(cin>>n)
{
if(n!=-1)
b.push_back(n);
else
break;
}
cout<<"The same integers are:"<<endl;
int i=0,j=0;
while(i<a.size() && (j<b.size()))
{
if(a[i]<b[j])
i++;
else if(a[i]==b[j])
{
cout<<a[i]<<' ';
i++;
j++;
continue;
}
else
j++;
}
cout<<endl;
}
有序数组,没什么难度!!!
其时间复杂度为O(max(m,n));其中 m 为数组 a 的长度,n 为数组 b 的长度。