快速从两个有序数组中找到存在相同元素
需要在两个排序好的数组中找到存在相同元素,可以使用穷举,或者使用Map容器来判断.
但要追求效率写了一个只要循环一次的代码.实现思路,通过双指针进行查找,小的一边进行自增
vector<int> findSame(vector<int> array1, vector<int> array2)
{
int i = 0, j = 0;
vector<int> vec; //保存相同元素
while (i < array1.size() && j < array2.size()) {
//找到相同的元素
if (array1[i] == array2[j]) {
vec.push_back(array1[i]);
}
//小的元素增加
if (array1[i] < array2[j]) {
i++;
}
else {
j++;
}
}
return vec;
}