1937 Problem D 查找

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a845717607/article/details/89374107

问题 D: 查找

时间限制: 1 Sec  内存限制: 32 MB
 

题目描述

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

输入

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

输出

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

样例输入

6
3 2 5 4 7 8
2
3 6

样例输出

YES
NO

经验总结

emmmm,这一题依旧可以直接遍历查找,或者hash查找,难度不大,就不多说啦~

AC代码

遍历

#include <cstdio>
int main()
{
	int n;
	while(~scanf("%d",&n))
	{
		int a[110]={0};
		for(int i=0;i<n;i++)
			scanf("%d",&a[i]);
		int m;
		scanf("%d",&m);
		for(int i=0;i<m;i++)
		{
			int temp,flag=0;
			scanf("%d",&temp);
			for(int j=0;j<n;j++)
			{
				if(a[j]==temp)
				{
					flag=1;
					break;
				}
			}
			if(flag==0)
				printf("NO\n");
			else
				printf("YES\n");
		}
	}
	return 0;
}

hash

#include <cstdio>
#include <unordered_map>
using namespace std;
int main()
{
	int n,m,temp;
	while(~scanf("%d",&n))
	{
		unordered_map<int,bool> mp;
		for(int i=0;i<n;i++)
		{
			scanf("%d",&temp);
			mp[temp]=true;
		}
		scanf("%d",&m);
		for(int i=0;i<m;i++)
		{
			scanf("%d",&temp);
			if(mp[temp]==false)
				printf("NO\n");
			else
				printf("YES\n");
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/a845717607/article/details/89374107