【题解】【AcWing】3542. 查找

130 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

3542. 查找

原题传送:AcWing 3542. 查找

给定一个长度为 nn 的数组 a1,,ana_1,…,a_n 和一个长度为 mm 的数组 b1,,bmb_1,…,b_m

对于每一个 bib_i ,请你查找其是否在数组 aa 中出现过。

输入格式

第一行包含整数 nn

第二行包含 nn 个整数 a1,,ana_1,…,a_n

第三行包含整数 mm

第四行包含 mm 个整数 b1,,bmb_1,…,b_m

输出格式

mm 行,对于第 ii 行,如果 bib_i 在数组 aa 中出现过,则输出 YES,否则输出 NO

数据范围

1m,n1001 \le m,n \le 100 , 1ai,bi1091 \le a_i,b_i \le 10^9

输入样例:

5
1 5 2 4 3
3
2 5 6

输出样例:

YES
YES
NO

思路:

将出现过的数加入哈希表,查询时查看哈希表中是否出现过。

题解:

#include <bits/stdc++.h>

using namespace std;

int n, m;
unordered_map<int, int> mp;

int main()
{
	cin >> n;
	
	for(int i = 0; i < n; i++)
	{
		int x;
		cin >> x;
		mp[x]++;
	}
	
	cin >> m;
	
	for(int i = 0; i < m; i++)
	{
		int x;
		cin >> x;
		if(mp[x]) cout << "YES" << endl;
		else cout << "NO" << endl;
	}
	
	return 0;
}