题解 | #查找#
查找
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")