求两个数组的交集c++
时间: 2023-09-04 15:15:07 浏览: 88
运算符重载题目合集(整型数组交集、矩阵加法、分数加法)
假设有两个数组a和b,可以用以下方法求它们的交集c:
1.先将两个数组排序,可以使用排序算法如快速排序、归并排序等;
2.设置两个指针i和j,分别指向数组a和数组b的开头;
3.将i和j所指向的元素进行比较,如果相等,则将该元素加入到交集c中,并将两个指针都向后移动一位;如果不相等,则将指向较小元素的指针向后移动一位;
4.重复步骤3,直到i或j到达数组的尾部。
下面是一个示例代码:
```python
def intersection(a, b):
a.sort()
b.sort()
i, j = 0, 0
c = []
while i < len(a) and j < len(b):
if a[i] == b[j]:
c.append(a[i])
i += 1
j += 1
elif a[i] < b[j]:
i += 1
else:
j += 1
return c
```
该函数接受两个参数a和b,返回它们的交集c。该函数的时间复杂度为O(nlogn),其中n为两个数组的总长度。
阅读全文