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

题目描述

题目描述

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

输入格式

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

第二行输入个空格分开的整数,表示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]<<" ";
}
相关推荐
释厄6236 分钟前
同性线套娃律——圆面积必然=1+2+...+n 的求和·圆心不与 π 相关
java·人工智能·算法·1024程序员节
暴力求解23 分钟前
C++ ---继承(二)
开发语言·c++·算法
码林拾遗WJ1 小时前
告警分级的自动化实测:模型判断 vs 人工拍板
人工智能·算法·自动化
Tisfy1 小时前
LeetCode 0453.最小操作次数使数组元素相等:两次遍历(反向思维)
算法·leetcode·题解·遍历·反向思维
君万1 小时前
【LeetCode每日一题】回溯:46. 全排列 78. 子集 39. 组合总和
算法·leetcode·go
La Pulga2 小时前
【FreeRTOS源码学习笔记】链表的实现
数据结构·笔记·stm32·mcu·链表·嵌入式·freertos
Keep_Trying_Go2 小时前
Consistent-Point半监督人群计数算法详解
人工智能·深度学习·算法·计算机视觉·人群计数
在所不辞兄2 小时前
【零基础学智能仿真-69】综合项目——材料参数驱动的仿真研究
人工智能·深度学习·神经网络·算法·机器学习·1024程序员节
凉茶钱3 小时前
红黑树:用“颜色”换“平衡”,set 与 map 的底层发动机
开发语言·c++·红黑树
番茄味城市甜菜3 小时前
数据结构:双向链表实现,链表与顺序表的对比
数据结构·链表