/*
4 4
5 1 7 3
2 3 4 1

n,m  
int arr[100005];
for(n) arr
for(m) brr
for(int i=1;i<=n;i++){ //arr[i] 10000000000
	for(int j=1;j<=m;j++){ 100000
		if(arr[i]==brr[j]) 	cout arr[i];
	}
}超时  85分 

如果说我们用计数数组 arr[1000000000] 
100 
稠密  1000个数 每个数都是1~3的范围 
稀疏  100000个数 每个数的范围 1~1000000000 

数组的下标 他一定是连续的数字 0~?  
有一种数据形式 能满足下标他不是连续的 
数组 下标必须是从0开始的整数  
map 自己去定义 谁和谁对应 
*/
#include <bits/stdc++.h>
using namespace std;
map<int,int> vis; //自己定义的下标和值的集合 
int n,m,x,arr[100005];
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>arr[i];
	for(int i=1;i<=m;i++){
		cin>>x;
		vis[x] = 1; //=1就代表出现过 
	}
	for(int i=1;i<=n;i++){
		if(vis[arr[i]]==1) cout<<arr[i]<<" ";
	} 
	return 0;
}

0 条评论

目前还没有评论...

信息

ID
189
时间
1000ms
内存
256MiB
难度
7
标签
递交数
22
已通过
7
上传者