两个数组的交集(c++题解)

题目描述

题目描述

给定两个数组 nums1nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。按照从小到大的顺序输出两个数组的交集。

输入格式

第一行输入两个整数 和 ,分别表示nums1nums2 两个数组元素数量。

第二行输入个空格分开的整数,表示nums1 数组。

第二行输入个空格分开的整数,表示nums2 数组。

输出格式

按照从小到大的顺序输出两个数组的交集。

样例
样例输入1
复制代码
复制4 2
1 2 2 1
2 2
样例输出1
复制代码
复制2
样例输入2
复制代码
复制3 5
4 9 5
9 4 9 8 4
样例输出2
复制代码
复制4 9

日常发作业题解。

也是简单到爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆表的题

写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int n,m,idx;
int a[1000005],b[1000005],c[1000005];
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)cin>>a[i];
	for(int i=1;i<=m;i++)cin>>b[i];
	sort(a+1,a+1+n);
	sort(b+1,b+1+m);
	int f=1,s=1;
	while(f<=n&&s<=m){//快慢指针法
		if(a[f]>b[s])s++;
		if(a[f]<b[s])f++;
		if(a[f]==b[s]){
			if(c[idx]!=a[f]){//去重
				idx++;
				c[idx]=a[f];
			}
			f++,s++;
		}
	}
	for(int i=1;i<=idx;i++)cout<<c[i]<<" ";
}
相关推荐
seanmeng20226 分钟前
理解AWS AgentCore - Long term Memory
算法
ygming22 分钟前
Q55- code34- 在排序数组中查找元素的第一个和最后一个位置 + Q56- code33- 搜索旋转排序数组
前端·算法
watson_pillow42 分钟前
mfc按钮点击事件没有触发,且程序卡死
c++·mfc
404未精通的狗1 小时前
(C++)继承全解析及运用
开发语言·c++
xo198820111 小时前
鸿蒙Des 加密解密 C++版本
c++·华为·harmonyos
qiuyunoqy2 小时前
蓝桥杯算法之搜索章 - 4
算法
Swaggy T2 小时前
自动驾驶决策算法 —— 有限状态机 FSM
linux·人工智能·算法·机器学习·自动驾驶
MATLAB代码顾问2 小时前
MATLAB实现遗传算法求解路网路由问题
开发语言·算法·matlab
啊阿狸不会拉杆2 小时前
《算法导论》第 21 章-用于不相交集合的数据结构
数据结构·c++·算法·随机森林
快去睡觉~2 小时前
力扣11:盛水最多的容器
算法·leetcode·职场和发展