找出两个有序数组的公共元素

找出两个有序数组的公共元素,例:有序数组[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 的长度。

点赞