题解 | #查找#
查找
https://www.nowcoder.com/practice/d93db01c2ee44e8a9237d63842aca8aa
#include <iostream>
using namespace std;
#include<algorithm>
#include<cstdio>
int arr[100];
bool bisearch(int n,int target){
int left=0,right=n-1;
while(left<=right){
int middle=(left+right)/2;
if(arr[middle]==target){
return true;
}
else if(arr[middle]>target){right=middle-1;}
else {left=middle+1;}
} return false;
}
int main() {
int n,m,target;
while(cin>>n){
for(int i=0;i<n;i++){
cin>>arr[i];
}
sort(arr,arr+n);
cin>>m;
for(int j=0;j<m;j++){
cin>>target;
int m=bisearch(n ,target);
if(m==true) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
}
// 64 位输出请用 printf("%lld")
查看16道真题和解析