两个数组的交集(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]<<" ";
}
相关推荐
老马啸西风6 分钟前
力扣 LC27. 移除元素 remove-element
算法·面试·github
数智顾问10 分钟前
中秋特别篇:使用QtOpenGL和着色器绘制星空与满月——从基础框架到光影渲染
算法
要一起看日出13 分钟前
数据结构-----栈&队列
java·数据结构··队列
txwtech13 分钟前
第5篇 如何计算两个坐标点距离--opencv图像中的两个点
人工智能·算法·机器学习
CoovallyAIHub13 分钟前
YOLO26学界首评:四大革新点究竟有多强?
深度学习·算法·计算机视觉
用户9163574409513 分钟前
LeetCode热题100——11.盛最多水的容器
javascript·算法
Gorgous—l27 分钟前
数据结构算法学习:LeetCode热题100-矩阵篇(矩阵置零、螺旋矩阵、旋转图像、搜索二维矩阵 II)
数据结构·学习·算法
2401_841495641 小时前
【计算机视觉】霍夫变换函数的参数调整
人工智能·python·算法·计算机视觉·霍夫变换·直线检测·调整策略
练习前端两年半1 小时前
🔍 你真的会二分查找吗?
前端·javascript·算法
澄澈i2 小时前
CMake学习篇[3]---CMake进阶+嵌套CMakeLists+多层级关系
c++·学习·cmake