C++ 动态查找问题

查找类问题:
1、数字查找:给你一堆数字,让你在其中查找x是否存在
2、字符串查找:给你很多字符串,让你在其中找出字符串s是否存在
面对大量的数据量,很多人的想法是先sort排序,然后二分查找。可以使用map来做。

问题:有n个整数的集合,想让你从中找出x是否存在。
输入描述:
第一行输入一个正整数n
第二行输入n个正整数
第三行输入一个q,表示查询次数
接下来输入q行,每行一个正整数x,查询x是否存在
如果x存在,请输出find,如果不存在,请输出no,并将x加入到集合中

#include<iostream>
#include<map>
using namespace std;
int main(){
	int n,q,x;
	map<int,int> M;
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		scanf("%d",&x);
		M[x]++;
	}
	scanf("%d",&q);
	for(int i=0;i<q;i++){
		scanf("%d",&x);
		if(M[x]==0){
			printf("no\n");
			M[x]++;	
		}
		else printf("find\n");
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43635647/article/details/103979783