logo头像

往者不可谏,来者犹可追。

牛客-北邮-查找2

题目描述

输入数组长度 n 输入数组 a[1…n] 输入查找个数m 输入查找数字b[1…m] 输出 YES or NO 查找有则YES 否则NO 。


输入描述:

输入有多组数据。
每组输入n,然后输入n个整数,再输入m,然后再输入m个整数(1<=m,n<=100)。


输出描述:

如果在n个数组中输出YES否则输出NO。


示例1

输入

5
1 5 2 4 3
3
2 5 6

输出

YES
YES
NO


分析

利用Map,时间查找一个数时间复杂度O(1)


代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <cstdio>
#include <map>
using namespace std;

int main() {
int n, m, a,b;
map<int,bool> hashMap;
while(scanf("%d",&n)!=EOF){
for(int i = 0; i < n; i ++){
scanf("%d",&a);
hashMap[a] = 1;
}
scanf("%d",&m);
while(m--){
scanf("%d",&b);
if(hashMap[b]){
printf("YES\n");
}else{
printf("NO\n");
}
}
}
return 0;
}
上一篇