两种方法 set容器和二分,不懂set容器看我这一篇文章 #include stdio.h //set容器查找 #include set using namespace std ; int main () { int n , m , x , i ; set int s ; scanf ( "%d %d" , m , n ); for ( i = 0 ;
两种方法 set容器和二分,不懂set容器看我这一篇文章
#include <stdio.h>//set容器查找#include <set>
using namespace std;
int main()
{
int n,m,x,i;
set<int>s;
scanf("%d %d",&m,&n);
for(i=0;i<m;i++)
scanf("%d",&x),s.insert(x);
for(i=0;i<n;i++)
{
scanf("%d",&x);
if(s.find(x)!=s.end())
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
#include <string.h>
#include <algorithm>
using namespace std;
long a[1000005];
void search(long x,long right)
{
long mid,left=0,flag=0;
while(left<=right)
{
mid=(left+right)/2;
if(a[mid]<x)
left=mid+1;
if(a[mid]>x)
right=mid-1;
if(a[mid]==x)
{
flag=1;
printf("YES\n");
break;
}
}
if(!flag)
printf("NO\n");
}
int main()
{
long m,n,i,num;
memset(a,0,sizeof(a));
scanf("%ld %ld",&m,&n);
for(i=0;i<m;i++)
scanf("%ld",&a[i]);
sort(a,a+m);
for(i=0;i<n;i++)
{
scanf("%ld",&num);
search(num,m-1);
}
return 0;
}