本文已参与「新人创作礼」活动,一起开启掘金创作之路。
3542. 查找
原题传送:AcWing 3542. 查找
给定一个长度为 的数组 和一个长度为 的数组 。
对于每一个 ,请你查找其是否在数组 中出现过。
输入格式
第一行包含整数 。
第二行包含 个整数 。
第三行包含整数 。
第四行包含 个整数 。
输出格式
共 行,对于第 行,如果 在数组 中出现过,则输出 YES,否则输出 NO。
数据范围
,
输入样例:
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;
}