#include <algorithm>
#include <functional>
#include <iostream>
using namespace std;
int main() {
int n, m;
int a[100];
int b[100];
while (cin >> n) { // 注意 while 处理多个 case
for(int i=0;i<n;i++)
{
cin>>a[i];
}
cin>>m;
for(int i=0;i<m;i++)
cin>>b[i];
sort(a,a+n);
for(int i=0;i<m;i++)
if(binary_search(a, a+n, b[i]))
cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
// 64 位输出请用 printf("%lld")
使用二分查找binary_serch(arr,arr+size,index);其中arr是待查找数组的起始位置,arr+size是待查找数组的结束位置,index是待查找元素的值.注意二分查找的数组必须是有序的。此题可以先sort排序后用二分查找。

京公网安备 11010502036488号