标签:
6 4 23 34 46 768 343 343 2 4 23 343
NO NO YES YES
思路:普通查找肯定会爆
Code:
/*二分法*/
#include <stdio.h>
#include <algorithm>
using namespace std;
int a[1000000];
bool BinSearch(int *a,int m,int ans)
{
int low=0,high=m-1,mid;
while(low<=high)
{
mid=(low+high)/2;
if(ans==a[mid])
return true;
if(ans<a[mid])
high=mid-1;
else
low=mid+1;
}
return false;
}
int main()
{
int m,n,ans,i;
scanf("%d%d",&m,&n);
for(i=0;i<m;i++)
scanf("%d",&a[i]);
sort(a,a+m); //注意二分的话这里要排序,开始忘了wa
while(n--)
{
scanf("%d",&ans);
if(BinSearch(a,m,ans))
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
#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;
}
标签:
原文地址:http://blog.csdn.net/sxx312/article/details/51334245